web课程设计学位论文.docx
- 文档编号:3807098
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:26
- 大小:1.49MB
web课程设计学位论文.docx
《web课程设计学位论文.docx》由会员分享,可在线阅读,更多相关《web课程设计学位论文.docx(26页珍藏版)》请在冰豆网上搜索。
web课程设计学位论文
《WEB技术》
课程设计报告
题目:
_________用户信息管理系统____________
学院计算机与信息工程学院
班级____商务1101______
学号___1112200108___
姓名___张怀平_______
2013年6月
一、任务书
本系统是由我个人自己完成。
系统设计目标如下:
表1
设计目标
用户管理基本功能分为前台客户使用部分、后台管理员使用部分。
前台基本功能,包括客户注册、客户登录、客户基本资料修改,密码修改,客户信息查看等功能。
后台基本功能,包括用户查询、添加用户、用户资料修改、删除用户等功能。
开发环境
Mysql,Tomcat,MyEclipse,windows
运行环境
Windows,Tomcat,Mysql
二、设计报告
1、功能分析
1.1功能概况
该系统主要分为前台系统和后台系统。
前台系统功能包括用户注册,用户登陆,用户信息查看,用户密码修改等功能。
后台只有管理员才可以登陆,主要功能有系统用户的添加,系统用户信息的修改,系统用户信息的查询,系统用户删除等。
管理员默认的的账户是yishaoku,密码是123。
如果想改变可以在数据库中的t_manager中进行修改。
普通用户系统中已经存在一些。
如:
账户:
azhang,姓名:
张怀平,密码:
yishaoku等。
系统功能流程图如下:
图1
1.2系统角色设计
该用户管理系统的角色主要由两类,普通用户角色和管理员角色。
其中普通用户又可以分为未注册用户,和已经注册用户。
两类用户各自的权限如下:
用户:
图2
管理员:
图3
1.3主要业务流程设计
1.3.1用户注册
图4
1.3.2用户登陆
图5
1.3.3用户修改密码
图6
1.3.4管理员添加用户
图7
1.3.5管理员修改用户信息
图8
1.3.6管理员删除用户
图9
2、数据库表设计
本系统主要是模拟用户的信息管理,主要涉及两张表,普通用户信息表t_user,管理员信息表t_manager。
普通用户信息表如下:
表2
字段名
数据类型
长度
含义
备注
user_id
varchar
11
用户账号
主码
user_name
varchar
50
用户姓名
非空
password
varchar
50
用户密码
非空
contact_tel
varchar
20
联系电话
非空
varchar
50
电子邮箱
非空
create_date
datetime
无
申请日期
非空
普通用户信息表t_user的ER图如下:
图10
管理员信息表如下:
表3
字段名
数据类型
长度
含义
备注
name
varchar
50
用户账号
主码
password
varchar
50
用户姓名
非空
管理员信息表ER图如下:
图11
3、功能实现
普通用户信息表和管理员信息的表通过两个JavaBean来封装,代码如下:
普通用户:
packagecom.bjsxt.drp.business.usermgr.model;
importjava.util.Date;
publicclassUser{
privateStringuserId;
privateStringuserName;
privateStringpassword;
privateStringcontactTel;
privateStringemail;
privateDatecreateDate;
publicStringgetContactTel(){
returncontactTel;
}
publicvoidsetContactTel(StringcontactTel){
this.contactTel=contactTel;
}
publicDategetCreateDate(){
returncreateDate;
}
publicvoidsetCreateDate(DatecreateDate){
this.createDate=createDate;
}
publicStringgetEmail(){
returnemail;
}
publicvoidsetEmail(Stringemail){
this.email=email;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
publicStringgetUserId(){
returnuserId;
}
publicvoidsetUserId(StringuserId){
this.userId=userId;
}
publicStringgetUserName(){
returnuserName;
}
publicvoidsetUserName(StringuserName){
this.userName=userName;
}
}
管理员如下:
packagecom.bjsxt.drp.business.usermgr.model;
publicclassManager{
privateStringname;
privateStringpassword;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
}
整个系统对数据库的操作是一个重要的环节,因为对数据库的操作是一个耗资源的操作,所以连接数据库和操作数据库的代码要合理设计,本系统对数据库操作代码如下:
packagecom.bjsxt.drp.business.util;
importjava.sql.*;
publicclassDB{
publicstaticConnectiongetConn(){
Connectionconn=null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/db_user?
user=root&password=yishaoku");
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
e.printStackTrace();
}
returnconn;
}
publicstaticvoidcloseConn(Connectionconn){
try{
if(conn!
=null){
conn.close();
conn=null;
}
}catch(SQLExceptione){
e.printStackTrace();
}
}
publicstaticvoidcloseStmt(Statementstmt){
try{
if(stmt!
=null){
stmt.close();
stmt=null;
}
}catch(SQLExceptione){
e.printStackTrace();
}
}
publicstaticvoidcloseRs(ResultSetrs){
try{
if(rs!
=null){
rs.close();
rs=null;
}
}catch(SQLExceptione){
e.printStackTrace();
}
}
}
上面的代码是连接数据库服务器,查询服务,修改服务和关闭数据库连接的代码。
接下来介绍该系统具体实现对用户表的CRUD(增删改查)的操作。
代码如下:
具体操作用户信息表的代码:
packagecom.bjsxt.drp.business.usermgr.dao;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.sql.Timestamp;
importjava.util.ArrayList;
importjava.util.List;
importcom.bjsxt.drp.business.usermgr.model.User;
importcom.bjsxt.drp.business.util.DB;
publicclassUserDao4MySqlImplimplementsUserDao{
publicvoidaddUser(Connectionconn,Useruser){
Stringsql="insertintot_user(user_id,user_name,password,contact_tel,email,create_date)"
+"values(?
?
?
?
?
?
)";
PreparedStatementpstmt=null;
try{
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,user.getUserId());
pstmt.setString(2,user.getUserName());
pstmt.setString(3,user.getPassword());
pstmt.setString(4,user.getContactTel());
pstmt.setString(5,user.getEmail());
pstmt.setTimestamp(6,newTimestamp(user.getCreateDate().getTime()));
pstmt.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
}finally{
DB.closeStmt(pstmt);
}
}
publicvoiddeleteUsers(Connectionconn,String[]userIdList){
StringBuffersbfSql=newStringBuffer();
for(inti=0;i sbfSql.append("'").append(userIdList[i]).append("'").append(","); } Stringsql="deletefromt_userwhereuser_idin(" +sbfSql.substring(0,sbfSql.length()-1)+")"; Statementstmt=null; try{ stmt=conn.createStatement(); stmt.executeUpdate(sql); }catch(SQLExceptione){ e.printStackTrace(); }finally{ DB.closeStmt(stmt); DB.closeConn(conn); } } publicListfindAllUserList(){ Stringsql="select*fromt_userorderbyuser_id"; Connectionconn=null; Statementstmt=null; ResultSetrs=null; ListuserList=newArrayList(); try{ conn=DB.getConn(); stmt=conn.createStatement(); rs=stmt.executeQuery(sql); while(rs.next()){ Useruser=newUser(); user.setUserId(rs.getString("user_id")); user.setUserName(rs.getString("user_name")); user.setPassword(rs.getString("password")); user.setContactTel(rs.getString("contact_tel")); user.setEmail(rs.getString("email")); user.setCreateDate(rs.getTimestamp("create_date")); userList.add(user); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ DB.closeRs(rs); DB.closeStmt(stmt); DB.closeConn(conn); } returnuserList; } publicUserfindUserById(StringuserId){ Stringsql="select*fromt_userwhereuser_id=? "; Useruser=null; Connectionconn=null; PreparedStatementpstmt=null; ResultSetrs=null; try{ conn=DB.getConn(); pstmt=conn.prepareStatement(sql); pstmt.setString(1,userId); rs=pstmt.executeQuery(); if(rs.next()){ user=newUser(); user.setUserId(rs.getString("user_id")); user.setUserName(rs.getString("user_name")); user.setPassword(rs.getString("password")); user.setContactTel(rs.getString("contact_tel")); user.setEmail(rs.getString("email")); user.setCreateDate(rs.getTimestamp("create_date")); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ DB.closeRs(rs); DB.closeStmt(pstmt); DB.closeConn(conn); } returnuser; } publicUseruserSearch(StringuserId,Stringpassword){ Stringsql="select*fromt_userwhereuser_id=? andpassword=? "; Useruser=null; Connectionconn=null; PreparedStatementpstmt=null; ResultSetrs=null; try{ conn=DB.getConn(); pstmt=conn.prepareStatement(sql); pstmt.setString(1,userId); pstmt.setString(2,password); rs=pstmt.executeQuery(); if(rs.next()){ user=newUser(); user.setUserId(rs.getString("user_id")); user.setUserName(rs.getString("user_name")); user.setPassword(rs.getString("password")); user.setContactTel(rs.getString("contact_tel")); user.setEmail(rs.getString("email")); user.setCreateDate(rs.getTimestamp("create_date")); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ DB.closeRs(rs); DB.closeStmt(pstmt); DB.closeConn(conn); } returnuser; } publicvoidmodifyUser(Connectionconn,Useruser){ Stringsql="updatet_usersetuser_name=? password=? contact_tel=? email=? whereuser_id=? "; PreparedStatementpstmt=null; try{ pstmt=conn.prepareStatement(sql); pstmt.setString(1,user.getUserName()); pstmt.setString(2,user.getPassword()); pstmt.setString(3,user.getContactTel()); pstmt.setString(4,user.getEmail()); pstmt.setString(5,user.getUserId()); pstmt.executeUpdate(); }catch(SQLExceptione){ e.printStackTrace(); }finally{ DB.closeStmt(pstmt); } } } 操作管理员的代码: packagecom.bjsxt.drp.business.usermgr.dao; importjava.sql.Connection; importjava.sql.PreparedStatement; importjava.sql.ResultSet; importjava.sql.SQLException; importcom.bjsxt.drp.business.usermgr.model.Manager; importcom.bjsxt.drp.business.util.DB; publicclassManagerDao4MySqlImplimplementsManagerDao{ publicManagerfindManager(Stringname,Stringpassword){ Stringsql="select*fromt_managerwherename=? andpassword=? "; Managermanager=null; Connectionconn=null; PreparedStatementpstmt=null; ResultSetrs=null; try{ conn=DB.getConn(); pstmt=conn.prepareStatement(sql); pstmt.setString(1,name); pstmt.setString(2,password); rs=pstmt.executeQuery(); if(rs.next()){ manager=newManager(); manager.setName(rs.getString("name")); manager.setPassword(rs.getString("password")); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ DB.closeRs(rs); DB.closeStmt(pst
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- web 课程设计 学位 论文