ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:728.51KB ,
资源ID:27564474      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27564474.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用户信息管理系统.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

用户信息管理系统.docx

1、用户信息管理系统代码行数639项目名称用户信息管理系统1实训目的面向对象程序设计课程设计是计算机科学与技术专业培养计划中的重要实践教学环节,旨在通过一个管理信息系统的开发,加深学生对Java语言的理解和应用,尤其是对面向对象编程思想、Java编码规范、图形用户接口、JDBC访问数据库的理解,巩固软件工程课程的相关知识,了解软件开发的基本流程,进一步提高学生的学习能力、理解能力、表达能力及沟通能力。2实训内容使用Eclipse为开发工具,使用ProcessOn、IDEA为建模工具,使用MySQL为数据库服务器,基于JDBC技术,分析、设计并实现一个管理信息系统。3.需求分析3.1 需求描述登录:

2、输入账号和密码,完成登录操作,进入主界面,显示所有用户的基本信息以及可进行的相关操作的选项。退出:登录后可进行退出操作,结束整个程序。注册:输入账户、密码和确认密码完成新用户的注册。显示用户信息:登录成功后在主界面中以表格形式显示所有用户的信息。添加用户:输入用户各项信息,完成用户信息的添加操作,添加成功后以表格形式显示所有的用户信息。删除用户:根据用户主键,完成用户信息的删除操作,删除成功后以表格形式显示所有的用户信息。修改用户:输入用户主键,显示用户信息,输入每个字段值,完成用户信息的修改,修改成功后以表格形式显示所有的用户信息。查询用户:可利用模糊查询完成对用户名的查询操作3.2 用例描

3、述4.功能设计4.1 系统层次方框图4.2 算法设计(活动图或时序图)登录功能活动图 注册功能活动图显示所有用户信息活动图用户信息添加活动图查询用户信息活动图删除用户信息活动图修改用户信息活动图5.数据设计5.1 类图设计系统类图数据库访问层类图数据库封装类类图业务层类图控制层类图视图层类图Test类图5.2 数据表设计 t_login表序号字段名类型长度备注1idint4主键2accountchar20唯一性、不为空3passwordchar20不为空t_user表序号字段名类型长度备注1idint4主键2namechar20不为空3sexint20表示男,1表示女4birthdaydate

4、默认不为空6.运行结果1.注册密码和确认密码不一致2.登录3.添加4.删除5.修改6.查询如果没有查询到相关的信息7退出7.关键代码1. LoginService.javaimport java.sql.ResultSet;import java.sql.SQLException;import a.DB;import cn.edu.ccut.po.Login;public class LoginService private DB db; private static LoginService service; private LoginService() /构造方法 db=DB.getIns

5、tance(); public static LoginService getInstance() if(service=null) service=new LoginService(); return service; public boolean login(Login lo) String sql=select * from t_login where account = ?and password = ? ; ResultSet rs=db.executeQueryByParam(sql,lo.getUsername(),lo.getPassword(); try if(rs.next

6、() return true; catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); finally db.close(); return false; public boolean register(Login lo) /注册 String sql =insert into t_login(account,password)values(?,?); int count=db.executeUpdate(sql,lo.getUsername(),lo.getPassword(); db.clo

7、se(); if(count0) return true; else return false; 2.DB.javaimport java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class DB private static DB db; private Connection con; private PreparedStatement pre; pri

8、vate ResultSet rs; static try Class.forName(com.mysql.jdbc.Driver); catch (ClassNotFoundException e) / TODO Auto-generated catch block e.printStackTrace(); private DB() / 构造方法 public static DB getInstance() if (db = null) db = new DB(); return db; private void buildconnection() try con = DriverManag

9、er.getConnection(jdbc:mysql:/localhost:3306/db, root, ); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); public ResultSet executeQueryByParam(String sql, Object.o) / 查询操作 this.buildconnection(); try pre = con.prepareStatement(sql);/ 预处理操作 System.out.println(o.length); f

10、or (int i = 0; i o.length; i+) pre.setObject(i+1, oi); / 设置字段内容,把通配符替换object rs = pre.executeQuery(); / 执行sql 语句 catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return rs; public ResultSet executeQueryNOparam(String sql) / 查询表中的所有内容 this.buildconnection(); try pre = con

11、.prepareStatement(sql); rs = pre.executeQuery(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return rs; public int executeUpdate(String sql, Object. o) this.buildconnection(); try pre = con.prepareStatement(sql); for (int i = 0; i o.length; i+) pre.setObject(i + 1,

12、oi); / 设置字段内容 int count = pre.executeUpdate(); return count; / 计数,修改的地方 catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return 0; public void close() try if (rs != null) rs.close(); pre.close(); con.close(); catch (SQLException e) / TODO Auto-generated catch block e.pri

13、ntStackTrace(); 3.AddView.javaimport java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.InputMismatchException;import java.util.Scanner;import cn.edu.ccut.service.UserService;public class AddView implements Operation Override public void operation(UserS

14、ervice service) throws InputMismatchException / TODO Auto-generated method stub Scanner scan =new Scanner(System.in); while(true) System.out.println(please input name、sex、birthday to ADD,if return input0:); String name=scan.next(); if(0.equals(name) break; String sex0=scan.next(); int sex1=1; if(男.e

15、quals(sex0) sex1=0; String birthday0=scan.next(); SimpleDateFormat format =new SimpleDateFormat(yyyy-MM-dd); Date birthday =new Date (); try birthday= format .parse(birthday0); catch (ParseException e) / TODO Auto-generated catch block e.printStackTrace(); boolean flag =service .insertOneUser(name,s

16、ex1,new java.sql.Date(birthday.getTime(); if(flag) System.out.println(add success); /scan.close() return; else System.out.println(add failure,try again); 8.实训总结通过三周的实训,时间虽短却也学到了不少的知识。刚开始只是有简单的想法,再到实践,中间还是有很多的问题和错误,但通过这个过程,自身修改错误的能力也相对增长。在这次实训的过程中,我发现平时学习的知识和实践应用有一定的差距,实践中必须自己摸索适合程序的方法,收集各个方面的知识,完成于数据库的连接和后台的搭建。此次实训,让我自己意识到自身还有很多问题,还有很多的不足,系统也不是很完善,但总的来说,此次实训对自身还是有很大的帮助,受益匪浅。成 绩Score教师签字 日期

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1