使用JDBC优化JAVASE基础项目练习 您所在的位置:网站首页 druiddatasourcefactory 使用JDBC优化JAVASE基础项目练习

使用JDBC优化JAVASE基础项目练习

2023-04-04 16:08| 来源: 网络整理| 查看: 265

前面我们学习万javase之后,进行了一个基础项目的练习(JavaSE 基础项目练习 - 尼古拉斯·银的文章 - 知乎 https://zhuanlan.zhihu.com/p/613120340)。

现阶段,学习完mysql以及使用JDBC去操作数据库之后,那么就可以将以前数据持久化保存在文件中的步骤进行优化了,因为前面文章已经描述了思路和项目要求,那么就直接上代码了。

一、准备阶段1.连接池配置文件url=jdbc:mysql://localhost:3306/jdbc username=root password=123456 driverClassName=com.mysql.cj.jdbc.Driver2.导入Druid依赖和MySQL依赖3.jdbc数据库建立

store表示存储数据的商品库,user表示存储用户登陆信息的。

二、代码实现1.main程序public class Main { //主程序 public static void main(String[] args) { /** * 首先进行用户登陆 */ boolean b = userLogin(); if (b) { /** * 操作商品维护模块 */ operateModule(); } } }2.用户登陆模块public class UserLogin { private static Scanner scanner = new Scanner(System.in); /** * 验证用户登陆的工具类 */ public static boolean userLogin() { Connection conn = getConn(); String sql = "select * from user where user_name = ? and password = ?"; PreparedStatement statement = null; ResultSet resultSet = null; //每天有5次登陆机会 int count = 5; boolean empty = true; boolean isLogin = false; try { statement = conn.prepareStatement(sql); /** * 进行登陆验证 */ do { System.out.println("------------欢迎来到十指波超市------------"); System.out.println("请先登陆超市账户:"); System.out.println("请输入用户名:"); String user_name = scanner.nextLine(); System.out.println("请输入密码:"); String password = scanner.nextLine(); statement.setString(1, user_name); statement.setString(2, password); resultSet = statement.executeQuery(); if (resultSet.next()) { System.out.println("登陆成功"); empty = false; isLogin = true; } else { count--; System.out.println("用户名或密码错误,今天还有" + count + "次重新输入机会"); } if (count == 0) { System.out.println("今日登陆次数用尽,请24小时之后再试!!!"); break; } } while (empty); } catch (SQLException throwables) { throwables.printStackTrace(); } finally { closeResources(conn, statement, resultSet); } return isLogin; } }3.商品操作模块public class OperateModule { private static Scanner scanner = new Scanner(System.in); /** * 用户操作模块工具 */ public static void operateModule() { String code = "-1"; while (!code.equals("9")) { System.out.println("-----------------------------------------------------------"); System.out.println("|0-添加| |1-删除| |2-修改| |3-列表| |4-入库| |5-出库| |9-退出系统|"); System.out.println("-----------------------------------------------------------"); System.out.println("请输入操作模块:"); code = scanner.nextLine(); switch (code) { case "0": add(); break; case "1": remove(); break; case "2": update(); break; case "3": show(); break; case "4": putInStorage(); break; case "5": outOfStorage(); break; case "9": System.out.println("退出系统"); break; default: System.out.println("输入错误"); } } } /** * 添加商品 */ public static void add() { try { Thread.sleep(10L); /** * 提醒用户输入添加的商品编码 */ System.out.println("请输入添加的商品编码:"); String idCode = scanner.nextLine(); String sqlQuery = "select number from store where idCode = ?"; int oldNumber = queryCount(getConn(), sqlQuery, Integer.parseInt(idCode)); if (oldNumber != -1) { System.out.println("该商品已存在,请输入添加数量:"); String addNum = scanner.nextLine(); String sqlUpdate = "update store set number = ? where idCode = ?"; updateUtil(getConn(), sqlUpdate, Integer.parseInt(addNum) + oldNumber, idCode); } else { System.out.println("仓库中没有该商品!"); System.out.println("是否添加此商品(Y/N)?"); String s = scanner.nextLine(); if (s.equalsIgnoreCase("Y")) { System.out.print("请输入添加的商品名称:"); String name = scanner.nextLine(); System.out.print("请输入添加的商品价格:"); String price = scanner.nextLine(); System.out.print("请输入添加的商品数量:"); String number = scanner.nextLine(); String sql = "insert into store(name,price,number) values(?,?,?)"; updateUtil(getConn(), sql, name, Double.parseDouble(price), Integer.parseInt(number)); System.out.println("添加成功!"); } } System.out.println("是否继续添加数据(Y/N):"); String sc = scanner.nextLine(); if (sc.equalsIgnoreCase("Y")) { add(); } } catch (InterruptedException e) { e.printStackTrace(); } } /** * 更新仓库 */ public static void update() { if (isEmpty()) { /** * 提醒用户输入修改的商品编码 */ System.out.print("请输入修改的商品编码:"); int idCode = Integer.parseInt(scanner.nextLine()); if (isEmpty(idCode)) { /** * 提醒用户输入修改的商品类型 */ System.out.println("请输入修改的商品类型(1:商品名称,2:商品价格,3:商品数量):"); int storeType = Integer.parseInt(scanner.nextLine()); String sqlUpdate = null; Connection conn = getConn(); while (true) { if (storeType == 1) { sqlUpdate = "update store set name = ? where idCode = ?"; System.out.println("请输入修改后的商品名称:"); String newName = scanner.nextLine(); updateUtil(conn, sqlUpdate, newName, idCode); System.out.println("修改成功"); break; } else if (storeType == 2) { sqlUpdate = "update store set price = ? where idCode = ?"; System.out.println("请输入修改后的商品价格:"); double newPrice = Double.parseDouble(scanner.nextLine()); updateUtil(conn, sqlUpdate, newPrice, idCode); System.out.println("修改成功"); break; } else if (storeType == 3) { sqlUpdate = "update store set number = ? where idCode = ?"; System.out.println("请输入修改后的商品数量:"); Integer newNumber = Integer.parseInt(scanner.nextLine()); updateUtil(conn, sqlUpdate, newNumber, idCode); System.out.println("修改成功"); break; } else { System.out.println("输入有误,请重新输入数字:"); } } } else { System.out.println("仓库中无此商品,无法修改。"); } } else { System.out.println("仓库为空,请先添加商品。"); } } /** * 删除商品 */ public static void remove() { /** * 仓库不空的情况下才能删除商品 */ if (isEmpty()) { /** * 提醒用户输入删除的商品编码 */ System.out.println("请输入删除的商品编码:"); int idCode = Integer.parseInt(scanner.nextLine()); if (isEmpty(idCode)) { String sqlDelete = "delete from store where idCode = ?"; updateUtil(getConn(), sqlDelete, idCode); System.out.println("已成功删除"); } else { System.out.println("仓库中无此商品,无法删除"); } } else { System.out.println("仓库为空,请先添加商品。"); } } /** * 展示仓库信息 */ public static void show() { String sql = "select * from store"; List stores = queryUtil(getConn(), sql, Store.class); if (isEmpty()) { System.out.println("----------------------------------------------"); System.out.println(" XXX商店 "); System.out.println("----------------------------------------------"); System.out.println(" 商品编号 商品名称 商品价格 商品数量 "); System.out.println("----------------------------------------------"); for (Store store : stores) { System.out.printf("| %s %s %f %d ", store.getIdCode(), store.getName(), store.getPrice(), store.getNumber()); System.out.println(); } System.out.println("----------------------------------------------"); } else { System.out.println("仓库为空,请先添加商品。"); } } /** * 入库 */ public static void putInStorage() { System.out.println("请输入入库商品编码:"); int idCode = Integer.parseInt(scanner.nextLine()); String sql = "select number from store where idCode = ?"; int number = queryCount(getConn(), sql, idCode); if (number != -1) { System.out.println("请输入入库数量"); int addNumber = Integer.parseInt(scanner.nextLine()); String sqlUpdate = "update store set number = ? where idCode = ?"; updateUtil(getConn(), sqlUpdate, (number + addNumber), idCode); int newNumber = queryCount(getConn(), sql, idCode); System.out.println("入库前商品数量为:" + number + " ,入库后商品数量为:" + newNumber); } else { System.out.println("仓库中无此商品,无法入库,请先添加该商品。"); } } /** * 出库 */ public static void outOfStorage() { System.out.println("请输入出库商品编码:"); int idCode = Integer.parseInt(scanner.nextLine()); String sql = "select number from store where idCode = ? "; if (isEmpty(idCode)) { int number = queryCount(getConn(), sql, idCode); System.out.println("当前商品数量为:" + number + ",最大可出库数量为:" + number); System.out.println("请输入商品出库数量"); int outOfNumber = Integer.parseInt(scanner.nextLine()); if ((number - outOfNumber)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有