用户管理系统的开发与设计.docx
用户管理系统的开发与设计 武汉理工大学华夏学院大作业报告书 课程名称:JSP程序设计 题目:用户管理系统的开发与设计 系名:信息工程系 专业班级:计算机 姓名: 学号: 指导教师:苏永红 2022年 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系统的整体功能模块框架图 图1 4.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", "123456"); / 准备语句 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 动态网站开发技术与实践北京电子工业出版社2022年2月 2 张建伟数据库技术与应用SQL Sever 2022 人民邮政出版社2022年2月 3 James Foxall Visual C# 2022 人民邮政出版社2022年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", "123456"); / 准备语句 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", "123456"); / 准备语句 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 findAll() /创建一个可变长度的链表 List list=new ArrayList(); /我需要去吧数据库中的信息查询出来 try / 加载驱动 Class.forName("com.mysql.jdbc.Driver"); / 建立连接 Connection conn = DriverManager.getConnection( "jdbc:mysql:/localhost:3306/wb", "root", "123456"); / 准备语句 String sql = "select * from tb_user " /准备对象