用户增删改查文档.docx
- 文档编号:28598799
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:19
- 大小:1.35MB
用户增删改查文档.docx
《用户增删改查文档.docx》由会员分享,可在线阅读,更多相关《用户增删改查文档.docx(19页珍藏版)》请在冰豆网上搜索。
用户增删改查文档
用户的增删改查
项目组二
需求说明书
文件状态:
[√]待定稿
[√]正式发布
[√]正在修改
文件标识:
JSP用户的增、删、改、查询
当前版本:
3.0
作者:
小组成员
完成日期:
2011年4月13日星期三
版本历史
版本/状态
作者
参与者
起始日期
备注
1.0
小组
许斯宁、顾萍、李雪、杨婕妤、唐春燕、洪瑞雪、曹芝佩
2011/4/08
开始研究
2.0
小组
许斯宁、顾萍、李雪、杨婕妤、唐春燕、洪瑞雪、曹芝佩
2011/4/12
制作中
3.0
小组
许斯宁、顾萍、李雪、杨婕妤、唐春燕、洪瑞雪、曹芝佩
2011/4/13
完成
目录
1.背景介绍3
2.需求分析4
2.1系统功能需求概要4
2.1.1前台4
2.1.2后台4
2.2功能模块图4
3.系统建模5
4.系统分析与设计4
4.1数据模型5
4.1.1E-R图6
4.1.2逻辑结构设计(关系图)6
4.2主要功能模块流程图7
5.系统实现与测试8
5.1系统实现(主要代码)8
5.1.1JavaBean连接数据库的使用9
5.1.2用户的增删改查9
5.2系统测试14
5.2.1注册界面14
5.2.2登录界面14
5.2.3登录成功界面15
5.2.4增删改查15
5.2.5修改密码16
6.小结16
6.1心得体会16
6.2遇到的问题17
1背景介绍
信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。
计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。
用户的增删改查是基于JSP来设计的。
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*。
Htm,*html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件。
2需求分析
2.1系统功能需求概要
2.1.1前台:
1)用户注册
2)用户登录
3)用户浏览(浏览员浏览页面)
4)用户修改(修改密码)
2.1.2后台:
1)管理员登录
2)添加用户
3)删除用户
4)修改用户
5)查询用户
2.2功能模块图
3系统建模
游客管理
管理员用户登录
登录
用户管理
查询注册
总体系统用例图
4系统分析与设计
4.1数据模型
4.1.1E-R图
系统ER图
m:
n
m:
n
m:
n
4.1.2逻辑结构设计(关系表)
用户表:
字段名
字段名类型
是否为空
主键
备注说明
Username
Varchar(20)
Notnull
否
用户名称
Userpassword
Varchar(20)
Notnull
否
用户密码
UserID
Bigint
Notnull
是
用户ID
4.2主要功能模块流程图
5系统实现与测试
5.1系统实现(主要代码)
5.1.1JavaBean连接数据库的使用
●名称:
dbPool.java
packagelogin;
/*数据访问组件*/
importjava.io.*;
importjava.util.*;
importjava.sql.*;
publicclassdbPool{
privatestaticdbPoolinstance=null;
//取得连接
publicstaticsynchronizedConnectiongetConnection(){
if(instance==null){
instance=newdbPool();
}
returninstance._getConnection();
}
privatedbPool(){
super();
}
privateConnection_getConnection(){
try{
StringsDBDriver=null;
StringsConnection=null;
StringsUser=null;
StringsPassword=null;
Propertiesp=newProperties();
InputStreamis=getClass().getResourceAsStream("/db2.properties");
p.load(is);
sDBDriver=p.getProperty("DBDriver",sDBDriver);
sConnection=p.getProperty("Connection",sConnection);
sUser=p.getProperty("User","");
sPassword=p.getProperty("Password","");
Propertiespr=newProperties();
pr.put("user",sUser);
pr.put("password",sPassword);
pr.put("characterEncoding","GB2312");
pr.put("useUnicode","TRUE");
Class.forName(sDBDriver).newInstance();
returnDriverManager.getConnection(sConnection,pr);
}
catch(Exceptionse){
System.out.println(se);
returnnull;
}
}
//释放资源
publicstaticvoiddbClose(Connectionconn,PreparedStatementps,ResultSetrs)
throwsSQLException
{
rs.close();
ps.close();
conn.close();
}
}
5.1.2用户的增、删、改、查
packagelogin;
/*模型组件*/
importjava.sql.*;
importjava.util.*;
publicclassloginHandler{
publicloginHandler(){
}
Connectionconn;
PreparedStatementps;
ResultSetrs;
//检查是否已注册
publicbooleancheckLogin(ArrayListarr)
{
//从数据访问组件dbPool中取得连接
conn=dbPool.getConnection();
Stringname=(String)arr.get(0);
Stringpassword=(String)arr.get
(1);
try{
Stringsql="select*fromapp.loginwherename=?
andpassword=?
";
ps=conn.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,password);
rs=ps.executeQuery();
if(rs.next())
{//释放资源
dbPool.dbClose(conn,ps,rs);
returntrue;
}
else{
dbPool.dbClose(conn,ps,rs);
returnfalse;
}
}catch(SQLExceptione){returnfalse;}
}
publicbooleanAdd(ArrayListarr)
{//从数据访问组件dbPool中取得连接
conn=dbPool.getConnection();
intflag;
Stringname=(String)arr.get(0);
Stringpassword=(String)arr.get
(1);
try{
Stringsql="insertintoapp.login(name,password)values(?
?
)";
ps=conn.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,password);
//rs=ps.executeQuery();
flag=ps.executeUpdate();
if(flag!
=0)
{//释放资源
ps.close();
conn.close();
returntrue;
}
else{
ps.close();
conn.close();
returnfalse;
}
}catch(SQLExceptione){returnfalse;}
}
publicbooleanDel(ArrayListarr)
{
//从数据访问组件dbPool中取得连接
conn=dbPool.getConnection();
intflag;
Stringid=(String)arr.get(0);
//Stringpassword=(String)arr.get
(1);
try{
Stringsql="deletefromapp.loginwhereid=?
";
ps=conn.prepareStatement(sql);
ps.setString(1,id);
//ps.setString(2,password);
//rs=ps.executeQuery();
flag=ps.executeUpdate();
if(flag!
=0)
{
//释放资源
ps.close();
conn.close();
returntrue;
}
else{
ps.close();
conn.close();
returnfalse;
}
}catch(SQLExceptione){returnfalse;}
}
publicbooleanupServlet(ArrayListarr)
{
//从数据访问组件dbPool中取得连接
conn=dbPool.getConnection();
intflag;
Stringid=(String)arr.get(0);
Stringname=(String)arr.get
(1);
Stringpassword=(String)arr.get
(2);
try{
Stringsql="updateapp.loginsetname=?
password=?
whereid=?
";
ps=conn.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,password);
ps.setString(3,id);
//rs=ps.executeQuery();
flag=ps.executeUpdate();
if(flag!
=0)
{
//释放资源
ps.close();
conn.close();
returntrue;
}
else{
ps.close();
conn.close();
returnfalse;
}
}catch(SQLExceptione){returnfalse;}
}
publicbooleanselServlet(ArrayListarr)
{
//从数据访问组件dbPool中取得连接
conn=dbPool.getConnection();
intflag;
Stringid=(String)arr.get(0);
Stringsql;
if(id.equals(null))
{
try{
sql="select*fromapp.loginwhere1=1";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
if(rs.next())
{
//释放资源
rs.close();
ps.close();
conn.close();
returntrue;
}
else{
rs.close();
ps.close();
conn.close();
returntrue;
}
}catch(SQLExceptione){returntrue;}
}
else
{try{
sql="select*fromapp.loginwhere1=1andid=?
";
ps=conn.prepareStatement(sql);
ps.setString(1,id);
rs=ps.executeQuery();
if(rs.next())
{//释放资源
rs.close();
ps.close();
conn.close();
returntrue;
}
else{
rs.close();
ps.close();
conn.close();
returntrue;
}
}catch(SQLExceptione){returntrue;}
}
}
}
5.2系统测试
5.2.1注册界面:
5.2.2登入界面:
5.2.3登入成功界面:
5.2.4增删改查:
5.2.5修改密码:
6小结
6.1心得体会
这次的项目的开发是我们小组花了大量的时间、认真的做的,一个星期左右的时间,老师的要求基本实现了。
总体说来感觉受益匪浅,因为在实践的过程中把所学的理论东西基本都用上了,完整的回顾了一遍;当然其中在遇到一些困难,难题没法解决时,还锻炼了我门小组的耐心与专研精神,大家不厌其烦的翻书找答案,看不懂就多看几遍,不断的讨论着,到最后领会到了其中的奥妙;也发现网络其实是个很好的资源,有问题就XX一下,还是很有帮助的,不用走太多的弯路。
6.2遇到的问题
常见问题
解决方案
解决人员
页面设计不够美观
表格的合理运用以及选图美观点
李雪和杨婕妤
数据库设计
大家一起讨论了该怎么设计数据库,并在添加新信息的时候检测是否违反主键的规则
曹芝佩和洪瑞雪
数据库连接
这次链接数据库用的是javebean,用try{}catch(SQLExceptione){out,print(e);},加上这个代码它会告诉你数据库什么地方出错了,这使得我更容易修改代码,检错机制还是挺有帮助的。
许斯宁和唐春燕
关于验证的问题
在这次试验中很多操作都要有验证再先操作结束之后也要判断是否成功或者提示用户成功,比如在更新数据库时要检测操作是否完成(有时程序不出错,但实际的操作却没有完成,所以检测是比较重要的)。
这个过程中应用的最多的是session对象的使用,对session的两种方法set和get的使用现在已经非常的熟悉,
许斯宁,顾萍,唐春燕,洪瑞雪,李雪,杨婕妤,曹芝佩
小组分工:
许斯宁:
小组成员各项任务,整合资源(人力、图片、文档)代码编写与整合
李雪:
管理员管理页面、数据库设计(E-R图)
杨婕妤:
文档整理、网页美工
顾萍:
文档编写
洪瑞雪:
网页美工、用户界面设计及编写
曹芝佩:
文档整理、项目图的绘制
唐春燕:
PPT制作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用户 增删 文档
![提示](https://static.bdocx.com/images/bang_tan.gif)