一个小白的大数据实训过程JavaSEday05
2020-08-01 22:12
696 查看
昨天偷懒晚上没敲代码,今天把老师留下的作业:剩下的部分敲完,把完整的代码放上来,以下是一个简单的用户登录查询。功能没写完,因为只是为了熟悉继承,函数和方法的调用,JDBC等,所以写的很简单。
(1)Menu类 视图层
package com.hyg.view; import java.util.List; import java.util.Scanner; import com.hyg.model.User; import com.hyg.service.UserService; public class Menu { Scanner sc = new Scanner(System.in); UserService userService = new UserService(); //用户登录 public void loginView() { System.out.println("-------欢迎进入库存管理系统!-------"); System.out.println("-----------1.登录-----------------"); System.out.println("-----------2.退出-----------------"); System.out.println("请输入要进行的操作:"); int result = sc.nextInt(); //获取用户控制台输入的整数 if(result == 1) { System.out.println("请输入用户账号:"); String userno = sc.next(); //获取控制台输入的字符串 System.out.println("请输入用户密码:"); String pwd = sc.next(); User user = userService.login(userno,pwd); if(user != null) { //括号里直接写re也可以 //登录成功 System.out.println("进入首页!"); indexView(user); }else { //登录失败,重新调用登录界面 loginView(); } }else { //退出 System.out.println("您已退出系统!"); } } /*首页 * user 当前登录的用户对象 */ public void indexView(User user) { System.out.println("\t\t\t欢迎 [" + user.getUsername() + "]登录本系统!"); System.out.println("\t\t\t--------1、基库存管理----------"); System.out.println("\t\t\t-----------1.1 库存查询----------"); System.out.println("\t\t\t-----------1.2 入库管理----------"); System.out.println("\t\t\t-----------1.3 出库管理----------"); System.out.println("\t\t\t--------2、报表管理----------"); System.out.println("\t\t\t-----------2.1 库存月报----------"); System.out.println("\t\t\t-----------2.2 物资台账----------"); System.out.println("\t\t\t--------3、基础信息管理----------"); System.out.println("\t\t\t-----------3.1 用户管理----------"); System.out.println("\t\t\t-----------3.2 部门管理----------"); System.out.println("\t\t\t-----------3.3 仓库管理----------"); System.out.println("\t\t\t-----------3.4 供应商管理----------"); System.out.println("\t\t\t-----------3.5 产品管理----------"); System.out.println("\t\t\t--------4、退出系统----------"); System.out.print("请输入要进行的操作:"); String result = sc.next(); if(result.equals("3.1")) { userView(user); }else if(result.equals("3.2") ){ //这儿没写!!!3.3 3.4 3.5 都没写!!! } } public void userView(User user) { System.out.println("\t\t\t------------------欢迎到用户管理界面------------------"); System.out.println("\t\t\t------------------1、查看用户信息------------------"); System.out.println("\t\t\t------------------2、添加用户信息------------------"); System.out.println("\t\t\t------------------3、修改用户信息------------------"); System.out.println("\t\t\t------------------4、删除用户信息------------------"); System.out.println("\t\t\t------------------5、返回上一级------------------"); System.out.print("请输入要进行的操作:"); int result = sc.nextInt(); if(result==1) { //查看用户信息 List<User> list=userService.findUserList(); System.out.println("ID"+"\t姓名"+"\t账号"+"\t密码"+"\t职位"+"\t年龄"); for(int i =0;i<list.size();i++) { User u = list.get(i); System.out.println(u.getId()+"\t"+u.getUsername()+"\t"+u.getUserno()+"\t"+u.getPwd()+"\t"+u.getPosition()+"\t"+u.getAge()); } userView(user); }else if(result==2) { //添加用户信息 System.out.println("请输入账号:"); String userno = sc.next(); System.out.println("请输入密码:"); String pwd = sc.next(); User u = new User(); u.setUserno(userno); u.setPwd(pwd); Boolean flag = userService.addUser(u); if(flag) { //添加成功 System.out.println("添加成功!"); }else { //添加失败 System.out.println("添加失败!"); } userView(user); //调用当前方法继续进行 }else if(result==3) { //修改用户信息 System.out.println("请输入要修改的用户ID:"); int id = sc.nextInt(); System.out.println("请输入新密码:"); String pwd = sc.next(); System.out.println("请输入职位:"); String position = sc.next(); User u = new User(); u.setId(id); u.setPwd(pwd); u.setPosition(position); Boolean flagtwo = userService.updateUser(u); if(flagtwo) { //修改成功 System.out.println("修改成功!"); }else { //修改失败 System.out.println("修改失败!"); } userView(user); //调用当前方法继续进行 }else if(result==4) { //删除用户信息 System.out.println("请输入要删除的用户ID:"); int id = sc.nextInt(); User u = new User(); u.setId(id); Boolean flagthree = userService.deleteUser(u); if(flagthree) { //删除成功 System.out.println("删除成功!"); }else { //删除失败 System.out.println("删除失败!"); } userView(user); //调用当前方法继续进行 }else { indexView(user); } } public static void main(String[] args) { Menu m =new Menu(); m.loginView(); } }
(2)UserService
package com.hyg.service; import java.util.List; import com.hyg.dao.UserDao; import com.hyg.model.User; public class UserService { UserDao userDao = new UserDao(); /* * 用户登录 * userno 用户名 * pwd 密码 * return true 登录成功 return false 登录失败 */ public User login(String userno, String pwd) { //处理业务逻辑,密码加密等 return userDao.login(userno,pwd); } /* * 查询用户列表 * 返回用户集合 */ public List<User> findUserList() { return userDao.findUserList(); } /* * 添加用户 *@param u 用户对象 *@return true 添加成功 false 添加失败 */ public Boolean addUser(User u) { return userDao.addUser(u); } public Boolean updateUser(User u) { // TODO Auto-generated method stub return userDao.updateUser(u); } public Boolean deleteUser(User u) { // TODO Auto-generated method stub return userDao.deleteUser(u); } }
(3)User
package com.hyg.model; /* * 用户实体类(数据的载体,承载数据,传递数据) */ public class User { private int id; //id private String username; //姓名 private String userno; //账号 private String pwd; //密码 private String position; //职位 private int age; //年龄 public int getId() { return id; } public void setId(int id) { //自己修改可以,别人可以调用 this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getUserno() { return userno; } public void setUserno(String userno) { this.userno = userno; } public String getPwd() { return pwd; } public void setPwd(String pwd) { //pwd 逻辑代码 this.pwd = pwd; } public String getPosition() { //position中间四位隐藏,用****代替 return position; } public void setPosition(String position) { this.position = position; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
(4)UserDao
package com.hyg.dao; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.hyg.model.User; public class UserDao extends BaseDao{ /* * 用户登录 * userno 用户名 * pwd 密码 * return User用户对象,存储用户数据 */ public User login(String userno, String pwd) { String sql="select * from k_user where userno='"+userno+"'and pwd = '"+pwd+"'"; //注意变量跟字符串的拼接 //String sql="select * from k_user where userno=? and pwd =? "; 这种也可以 try { //1、获得数据库连接 this.conn = this.getConn(); //2、获得命令执行对象 this.ps = conn.prepareStatement(sql); //3、执行命令 this.rs = ps.executeQuery(); //涉及到数据库“查询”的全用这个 //4、处理结果 if(rs.next()) {//如果有下一条数据 String username = rs.getString("username"); //username表的列名,不区分大小写 String position = rs.getString("position"); //职位 int age = rs.getInt("age"); //年龄 int id = rs.getInt("id"); //用户ID User user = new User(); user.setId(id); user.setUsername(username); user.setUserno(userno); user.setPwd(pwd); user.setPosition(position); user.setAge(age); return user; } } catch (Exception e) { e.printStackTrace(); } return null; } /* * 查询用户列表 * 返回用户集合 */ public List<User> findUserList() { String sql="select * from k_user "; try { //1、获得数据库连接 this.conn = this.getConn(); //2、获得命令执行对象 this.ps = conn.prepareStatement(sql); //3、执行命令 this.rs = ps.executeQuery(); //涉及到数据库“查询”的全用这个 //4、处理结果 List<User> list = new ArrayList<User>(); while(rs.next()) {//如果有下一条数据 String username = rs.getString("username"); //username表的列名,不区分大小写 String position = rs.getString("position"); //职位 String userno = rs.getString("userno"); String pwd = rs.getString("pwd"); int age = rs.getInt("age"); //年龄 int id = rs.getInt("id"); //用户ID User user = new User(); user.setId(id); user.setUsername(username); user.setUserno(userno); user.setPwd(pwd); user.setPosition(position); user.setAge(age); list.add(user); } return list; } catch (Exception e) { e.printStackTrace(); } return null; } /* * 添加用户 *@param u 用户对象 *@return true 添加成功 false 添加失败 */ public Boolean addUser(User u) { String sql="insert into k_user(userno,pwd) values('"+u.getUserno()+"','"+u.getPwd()+"')"; //注意变量跟字符串的拼接 try { //1、获得数据库连接 this.conn = this.getConn(); //2、获得命令执行对象 this.ps = conn.prepareStatement(sql); //3、执行命令 int result = ps.executeUpdate(); //涉及到数据库“更新(添加,修改,删除)”的全用这个 //返回受影响的行数 if(result >0 ){ //result == 1 也可以 //执行成功 return true; } } catch (Exception e) { e.printStackTrace(); } return false; } public Boolean updateUser(User u) { String sql="update k_user set pwd = '"+u.getPwd()+"' , position = '"+u.getPosition()+"' where id = '"+u.getId()+"'"; //注意变量跟字符串的拼接 try { //1、获得数据库连接 this.conn = this.getConn(); //2、获得命令执行对象 this.ps = conn.prepareStatement(sql); //3、执行命令 int result = ps.executeUpdate(); //涉及到数据库“更新(添加,修改,删除)”的全用这个 //返回受影响的行数 if(result >0 ){ //result == 1 也可以 //执行成功 return true; } } catch (Exception e) { e.printStackTrace(); } return false; } public Boolean deleteUser(User u) { String sql="delete from k_user where id = '"+u.getId()+"'"; //注意变量跟字符串的拼接 try { //1、获得数据库连接 this.conn = this.getConn(); //2、获得命令执行对象 this.ps = conn.prepareStatement(sql); //3、执行命令 int result = ps.executeUpdate(); //涉及到数据库“更新(添加,修改,删除)”的全用这个 //返回受影响的行数 if(result >0 ){ //result == 1 也可以 //执行成功 return true; } } catch (Exception e) { e.printStackTrace(); } return false; } }
(5)BaseDao
package com.hyg.dao; //import java.sql.*; 只写这个也可以,不用剩下这几个都写了 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; /* * 数据库访问基类 */ public class BaseDao { //数据库驱动 private String driver = "com.mysql.jdbc.Driver"; //地址(ip、端口、数据库名称) private String url="jdbc:mysql://localhost:3306/orcl?useUnicode=true&charcterEncoding=UTF-8"; //这里的localhost可能改成mysql //数据库连接账号 private String name = "root"; //数据库连接密码 private String pass = "123456"; Connection conn; //数据库连接类 PreparedStatement ps; //执行命令(SQL)类 ResultSet rs; //存储执行结果 /* * 获得数据库连接 * @return 数据库连接对象 */ public Connection getConn(){ try { Class.forName(driver); Connection conn=DriverManager.getConnection(url, name, pass); return conn; /* * 上面两行可以合并成一行 *return DriverManager.getConnection(url, name, pass); */ } catch (Exception e) { //写入日志文件 //向控制台打印异常 e.printStackTrace(); } return null; } public static void main(String[] args) { new BaseDao().getConn(); } }
相关文章推荐
- activity数据回传过程(返回数据给上一个活动)
- 简单的存储过程实例2--对比三个表中的数据,将三个表中金额挑选一个最优值
- 一个将数据分页的存储过程
- 一个将数据分页的存储过程
- 一个高效的数据分页的存储过程
- 分享 一个NetApp删除所有卷后的数据恢复过程
- 一个根据条件查询数据的存储过程
- 一个将数据导出到EXCEL的存储过程-数据库专栏,SQL Server
- 教你使用MySQL仅调用一个存储过程创建三千万条数据
- 发布一个高效的数据分页的存储过程 可以轻松应付百万数据
- Android实训案例(九)——答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程
- Script:创建一个job,通过存储过程定期删除数据的脚本
- 一个加密过的老版本的Sybase ASA5.0数据库中的数据导出全过程
- [转koumi]一个高效率SQL储存过程分页,执行效率测试通过500万以上的数据
- 实验内容 (1) 建立一个有序静态查找表 (可只输入数据的关键字项) (2) 用折半查找方法查找给定关键字 (3)统计在本次查找过程中的比较次数
- 一个存储过程插入两个表数据,获得最近标识值
- [转贴]一个通用的数据分页的存储过程
- Android实训案例(九)——答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程
- 用bulk 实现超快迁移审计表AUD$数据过程一个
- Android实训案例(九)——答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程