湖南大学分布式数据库大作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分布式数据库课程设计

题目基于MongoDB的QQ空间模拟实现

学生姓名刘家宇

学生学号***********

专业班级计科一班

指导老师王永恒

完成日期 2015年1月15日

一、设计目的

QQ空间是现在大家经常使用的社交平台。在QQ空间上可以自己发表说说,查看其他人的说说,也可以给其他人的留言板上留言。这些功能都丰富了我们的社交生活,因此本次用JAVA连接Mongodb来实现一个简单的QQ空间模拟实现。

二、编写环境

Eclipse+Mongodb

三、环境配置

首先要运行MongoDB服务器,然后通过在eclipse里添加MongoDB的jar包来获取关于MongoDB的java方法,然后用这些方法来启动和操作MongoDB服务器。

在MongoDB官网“/downloads”下载MongoDB服务器应用包,将里面的exe文件放到一个自己设置的MongoDB文件夹中,如“F:

\MongoDB”

打开CMD,在刚刚的创建文件夹的目录下,输入指令

“mongod–dbpath “F:\MongoDB\data””如下图所示MongoDB服务器连接设置成功:

四、设计实现

1、数据库设计

Mongo数据库的设计

创建一个名为:soial的Mongo数据库,然后创建一些数据集合

①用户数据集合(userInfo):含有用户名(name)、用户密码(pwd)、用户地址(address)、用

户出生年月日(year、month、day)、用户证件号(id)和是否处于登陆状态(status)这些属性

②个人好友数据集合(userFriend):含有好友名(friend)和个人用户名(name)属性。

③留言板数据集合(userMassage):含有留言内容(massage)、留言人名(recipient)和对谁留

言(sender)的属性

④说说数据集合(userSaySay):说说内容(massage)和个人用户名(name)属性。

等等

2、功能设计

用户登录

代码

public class RegisterMonitor implements ActionListener{ private RegisterFrame rf; //用于注册界面

private boolean juge_success = true; //用于判断登录是否成功private boolean juge_null = true; //用来判断用户名和密码是否为空

public RegisterMonitor(RegisterFrame rf){

this.rf = rf;

}

public void actionPerformed(ActionEvent e) {

if(("返回").equals(e.getActionCommand())){

//用于关闭注册界面

rf.dispose();

//用于实例化登陆界面

LoginFrame lf = new LoginFrame();

//用于显示登陆界面

lf.showFrame();

}else if(("完成注册").equals(e.getActionCommand())){ String str = "";

//用于判断用户名是否为空

if(("").equals(rf.jtf_user_name.getText())){

juge_null = false;

}//如果不为空

else{

//进而判断密码是否为空

if(("").equals(rf.jtf_user_pwd.getText())){

juge_null = false;

}

}

//如果都不为空,再判断是否有重复用户名

if(juge_null){

//从Mongodb中获得名为userInfo的数据集合,如果该数据集合不存在,Mongodb会为其新建立

DBCollection userInfo =

OpenDatabase.db.getCollection("userInfo");

// 创建要查询的user

BasicDBObject searchQuery = new BasicDBObject();

//获取该用户名

str = rf.jtf_user_name.getText();

searchQuery.put("name", str);

// 使用userInfo的find方法查找user

DBCursor cursor = userInfo.find(searchQuery);

//若存在,则不能创建

while (cursor.hasNext()) {

juge_success = false;

cursor.next();

}

//判断该用户名是否存在

if(juge_success){

// 使用BasicDBObject对象创建一个mongodb的user,并给予赋值。

BasicDBObject user = new BasicDBObject();

str = rf.jtf_user_name.getText();

user.put("name", str);

str = rf.jtf_user_pwd.getText();

user.put("pwd", str);

str = rf.jtf_user_address.getText();

user.put("address", str);

str = rf.jtf_user_id.getText();

user.put("id", str);

str = rf.jtf_user_year.getText();

user.put("year", str);

str = rf.jtf_user_month.getText();

user.put("month", str);

str = rf.jtf_user_day.getText();

user.put("day", str);

//用于添加一个状态值,判断是否是当前用户登陆

user.put("status",0);

//用于将新建立的user保存到userInfo中去

userInfo.insert(user);

JOptionPane.showMessageDialog(null, "注册成功");

//用于关闭注册界面

rf.dispose();

//用于实例化登陆界面

LoginFrame lf = new LoginFrame();

//用于显示登陆界面

lf.showFrame();

}else{

相关文档
最新文档