用户管理系统的开发与设计(共17页).doc
精选优质文档-倾情为你奉上武汉理工大学华夏学院大作业报告书课程名称: JSP程序设计 题 目: 用户管理系统的开发与设计 系 名: 信息工程系 专业班级: 计算机 姓 名: 学 号: 指导教师: 苏永红 2014年 5 月 23 日1 目标 1.1实现用户登录检测,密码修改; 1.2用户信息管理1.2.1 用户信息输入;1.2.2 信息查询,可根据不同关键字进行条件查询;1.2.3 用户信息修改:拥有权限的操作员可以修改,删除普通用户;2 软件开发环境2.1 开发工具介绍 MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。 SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。2.2 数据库系统数据库是一种工作环境,它存储了一个“表”的集合,在表之间可以建立关系,对于数据字段可以设置属性和触发规则,从而保证表之间数据的完整性。3 系统需求分析1. 系统应建立友好的界面,既要操作简单、直观、,又要易于学习掌握。开发用户管理系统的目的是为了方便管理员对于用户信息的管理,包括修改、删除、输入等。2.系统在对于不同用户名密码时,将给出不同权限功能,比如,普通用户只能查看、修改自己的信息,而对于管理员,则包括用户信息输入;信息查询,可根据不同关键字进行条件查询;用户信息修改,可以修改,删除普通用户。3.该系统主要是面对系统管理员,故操作应该简单易懂,对于每一步的操作,都有不同的选择性,更显得系统的人性化。4 系统总体设计 4.1 系统功能简介 4.1.1. 当以管理员权限进入系统后可以进行系统的管理、查询、输入用户信息以及删除等操作。 4.1.2. 当以普通用户权限进入系统后可以对自己的基本信息进行查看,以及密码的修改。 4.2 系统功能模块规划4.2.1系统的整体功能模块框架图管理员登陆欢迎界面选择普通用户或管理员登陆选择管理员的功能按键普通用户欢迎界面 对普通用户进行增 、删、查、 改查看自己的信息以及修改密码返回登陆界面返回登陆界面图14.3 系统数据库设计 首先创建数据库,然后在数据库中创建一个tb_userd的表,再表中建立用户的基本信息,包括姓名,性别,年龄,电话,地址等等的基本信息。再创建一个admin的表,再表中建立用户的基本信息,包括姓名,性别,年龄,电话,地址等等的基本信息。Admin为超级用户,可增、删、查、改普通用户信息。 图2 普通用户的数据库界面 创建一个admin的表,再表中建立用户的基本信息,包括姓名,性别,年龄,电话,地址等等的基本信息。Admin为超级用户,可增、删、查、改普通用户信息。 图3 管理员的数据库界面4.4 数据库的连接技术 数据库连接代码public class UserDAO / 注册public boolean add(String username, String upass, String sex, int age,String email, String tel, String qq, String descr) boolean flag = false;/ 将数据存放到db中去try / 加载驱动Class.forName("com.mysql.jdbc.Driver");/ 建立连接Connection conn = DriverManager.getConnection("jdbc:mysql:/localhost:3306/wb", "root", "");/ 准备语句String sql = "insert into tb_user(username,upass,sex,age,email,tel,qq,descr) values('"+ username+ "','"+ upass+ "','"+ sex+ "',"+ age+ ",'"+ email+ "','"+ tel+ "','"+ qq+ "','"+ descr+ "')"/ 准备对象Statement st = conn.createStatement();/ 执行flag = !st.execute(sql); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return flag;5 系统详细设计 5.1登录模块 在该模块中,用户选择登陆权限后,对于用户输入的信息进行判断该用户是否有权利进入系统,用户通过在该页面中输入的用户名和密码,点击确定的同时系统到数据库中自动核对用户的信息,核对无误后可以成功进入系统。 5.2输入信息模块 在该模块中,普通用户只能在其中修改自己的信息,包括密码等,同时可以检测自己信息的正误。对于管理员,则可以在数据库中修改,删除所有用户的基本信息,而且还可以进行用户信息的输入,还可以查询基本信息。 5.3 数据库模块 该模块是用来存储管理员以及普通用户 6 系统测试与运行 6.1 运行截图 图4 登陆界面 选中管理员的下拉框,输入管理员账号和密码 图5 管理员登入界面管理员在这一界面可查看普通用户 图6 管理员查看用户界面管理员在这一界面可修改和删除普通用户 图7 管理员修改用户界面管理员在这一界面可修改普通用户的信息 图8 管理员修改用户界面管理员在这一界面可增加普通用户 图9 普通用户登录界面普通用户在这一界面可查看自己的信息 7 总 结 经过不断的努力,用户管理系统终于做完了,经过这次实习系统 设计,自己总结了这个用户信息管理系统的一些问题,不过收获还是颇为丰富的,再有理论知识上结合实践,使我学到了更多。 首先,更进一步的了解了数据库的基本操作, 在这之前,数据库的学 习仅仅刚开了个头,我们只是在了解一些概念性的东西。在做这个系统之前,我连基本的连接数据库,配文件DSN,数据库查询语句等这些东西都不熟练。现在对于数据库的增删改查操作比较熟练了,对于初学者来说,比较头疼的就是对于单引号的处理。我的建议是如果不理解先把按照课本上正确的语句敲,然后在多次进行数据库的链接,增删改查操作中不断总结规律。 这次设计的用户信息管理系统,全在自己所掌握的知识下,进行编程设计,完全体现了自己在数据库语言和程序设计课程学习状况,充分地为自己以后更深入了数据库语言奠下深厚的基础。 纵观此学生信息管理系统的整体概况,目前,自我认为设计良好,相关功能都能够实现,功能强大,条理清晰,界面可观性比较好。并且特色在于,所设计的表单都在一个表单系统桌面中运行,比较符合系统的观念。 在系统设计的过程中,我从中发现,学习数据库要细心和有耐性,并且要不断地从外界学习更多的技术才能设计出一套完美的系统 参 考 文 献1 ASP NET 2.0 动态网站开发技术与实践 北京2007年2月2 张建伟 数据库技术与应用SQL Sever 2005 人民邮政出版社 2009年2月 3 James Foxall Visual C# 2008 人民邮政出版社 2009年6月附录 系统核心代码/ 登录public boolean login(String username, String upass) boolean flag=false;try / 加载驱动Class.forName("com.mysql.jdbc.Driver");/ 建立连接Connection conn = DriverManager.getConnection("jdbc:mysql:/localhost:3306/wb", "root", "");/ 准备语句String sql = "select * from tb_user where username='" + username+ "' and upass='" + upass + "'"/准备对象Statement st=conn.createStatement();/执行/C U D 写 boolean a=execute(sql)、int a=executeUpdate(sql)/R select 读-ResultSet r=executeQuery(sql);ResultSet rs=st.executeQuery(sql);/如何取出rs中的数据进行判断int id=0;/判断rs中是否有数据while(rs.next()/有数据,则取出数据id=rs.getInt("uid");if(id>0)flag=true; catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace();return flag;/登陆管理员public boolean loginadmin(String adname,String adpass)boolean flag=false;try / 加载驱动Class.forName("com.mysql.jdbc.Driver");/ 建立连接Connection conn = DriverManager.getConnection("jdbc:mysql:/localhost:3306/wb", "root", "");/ 准备语句String sql = "select * from admin where adname='" + adname+ "' and adpass='" + adpass + "'"/准备对象Statement st=conn.createStatement();/执行/C U D 写 boolean a=execute(sql)、int a=executeUpdate(sql)/R select 读-ResultSet r=executeQuery(sql);ResultSet rs=st.executeQuery(sql);/如何取出rs中的数据进行判断int id=0;/判断rs中是否有数据while(rs.next()/有数据,则取出数据id=rs.getInt("id");if(id>0)flag=true; catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace();return flag;/查询所有tb_user信息/List<> 泛型public List<User> findAll()/创建一个可变长度的链表List<User> list=new ArrayList<User>();/我需要去吧数据库中的信息查询出来try / 加载驱动Class.forName("com.mysql.jdbc.Driver");/ 建立连接Connection conn = DriverManager.getConnection("jdbc:mysql:/localhost:3306/wb", "root", "");/ 准备语句String sql = "select * from tb_user "/准备对象Statement st=conn.createStatement();/执行/C-insert U-update D-delete 写 boolean a=execute(sql)、int a=executeUpdate(sql)/R select 读-ResultSet r=executeQuery(sql);ResultSet rs=st.executeQuery(sql);/判断rs中是否有数据while(rs.next()/有数据,则取出数据int uid=rs.getInt("uid");String username=rs.getString("username");String upass=rs.getString("upass");String sex=rs.getString("sex");String age=rs.getString("age");String qq=rs.getString("qq");String email=rs.getString("email");String tel=rs.getString("tel");String descr=rs.getString("descr");/System.out.println("uid:"+uid+"username:"+username);/封装User u=new User();u.setUid(uid);u.setUsername(username);u.setUpass(upass);u.setAge(age);u.setSex(sex);u.setTel(tel);u.setEmail(email);u.setQq(qq);u.setDescr(descr);/将user放入listlist.add(u); catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace();return list;/查询学生自己信息 public List<User> findselfinfo(String username1,String upass1) List<User> list=new ArrayList<User>();/我需要去吧数据库中的信息查询出来try / 加载驱动Class.forName("com.mysql.jdbc.Driver");/ 建立连接Connection conn = DriverManager.getConnection("jdbc:mysql:/localhost:3306/wb", "root", "");/ 准备语句String sql = "select * from tb_user where username='"+username1+"' and upass='"+upass1+"'"/准备对象Statement st=conn.createStatement();/执行/C-insert U-update D-delete 写 boolean a=execute(sql)、int a=executeUpdate(sql)/R select 读-ResultSet r=executeQuery(sql);ResultSet rs=st.executeQuery(sql);/判断rs中是否有数据while(rs.next()/有数据,则取出数据int uid=rs.getInt("uid");String username=rs.getString("username");String upass=rs.getString("upass");String sex=rs.getString("sex");String age=rs.getString("age");String qq=rs.getString("qq");String email=rs.getString("email");String tel=rs.getString("tel");String descr=rs.getString("descr");/System.out.println("uid:"+uid+"username:"+username);/封装User u=new User();u.setUid(uid);u.setUsername(username);u.setUpass(upass);u.setAge(age);u.setSex(sex);u.setTel(tel);u.setEmail(email);u.setQq(qq);u.setDescr(descr);/将user放入listlist.add(u); catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace();return list;/根据id删除public boolean deleteById(int uid)boolean flag=false;/ 将数据存放到db中去try / 加载驱动Class.forName("com.mysql.jdbc.Driver");/ 建立连接Connection conn = DriverManager.getConnection("jdbc:mysql:/localhost:3306/wb", "root", "");/ 准备语句String sql = "delete from tb_user where uid="+uid;/ 准备对象Statement st = conn.createStatement();/ 执行 int i=st.executeUpdate(sql); /如果有数据受影响,那么返回影响的行数值 /如果行数值大于0,那么有数据被影响 if(i>0) flag=true; catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return flag;/根据id查出信息public User findById(int uid)User u=new User();/我需要去吧数据库中的信息查询出来try / 加载驱动Class.forName("com.mysql.jdbc.Driver");/ 建立连接Connection conn = DriverManager.getConnection("jdbc:mysql:/localhost:3306/wb", "root", "");/ 准备语句String sql = "select * from tb_user where uid="+uid;/准备对象Statement st=conn.createStatement();/执行/C-insert U-update D-delete 写 boolean a=execute(sql)、int a=executeUpdate(sql)/R select 读-ResultSet r=executeQuery(sql);ResultSet rs=st.executeQuery(sql);/判断rs中是否有数据while(rs.next()/有数据,则取出数据String username=rs.getString("username");String upass=rs.getString("upass");String sex=rs.getString("sex");String age=rs.getString("age");String qq=rs.getString("qq");String email=rs.getString("email");String tel=rs.getString("tel");String descr=rs.getString("descr");u.setUid(uid);u.setUsername(username);u.setUpass(upass);u.setAge(age);u.setSex(sex);u.setTel(tel);u.setEmail(email);u.setQq(qq);u.setDescr(descr); catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace();return u;/ 根据id修改public boolean updateById(String username, String upass, String sex, int age,String email, String tel, String qq, String descr,int uid) boolean flag = false;/ 将数据存放到db中去try / 加载驱动Class.forName("com.mysql.jdbc.Driver");/ 建立连接Connection conn = DriverManager.getConnection("jdbc:mysql:/localhost:3306/wb", "root", "");/ 准备语句String sql = "update tb_user set username='"+ username+ "',upass='"+ upass+ "',sex='"+ sex+ "',age="+ age+ ",email='"+ email+ "',tel='"+ tel+ "',qq='"+ qq+ "',descr='"+ descr+ "' where uid="+uid;/ 准备对象Statement st = conn.createStatement();/ 执行flag = !st.execute(sql); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return flag;public boolean updateBookById(String bkid,String bkname,String writer,String bkin,int id)boolean flag = false;/ 将数据存放到db中去try / 加载驱动Class.forName("com.mysql.jdbc.Driver");/ 建立连接Connection conn = DriverManager.getConnection("jdbc:mysql:/localhost:3306/wb", "root", "");/ 准备语句String sql = "update book set bkname='"+bkname+"',bkid='"+bkid+"',bkin='"+bkin+"',writer='"+writer+"' where id="+id;/ 准备对象Statement st = conn.createStatement();/ 执行flag = !st.execute(sql); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return flag;专心-专注-专业