diff --git a/bin/finalexam/Database/PasswordChange.class b/bin/finalexam/Database/PasswordChange.class index f8521c2..7bf3af2 100644 Binary files a/bin/finalexam/Database/PasswordChange.class and b/bin/finalexam/Database/PasswordChange.class differ diff --git a/bin/finalexam/Database/ProductAdditionAndInquiry.class b/bin/finalexam/Database/ProductAdditionAndInquiry.class index a018f7f..6bdd682 100644 Binary files a/bin/finalexam/Database/ProductAdditionAndInquiry.class and b/bin/finalexam/Database/ProductAdditionAndInquiry.class differ diff --git a/bin/finalexam/Database/UserLogin.class b/bin/finalexam/Database/UserLogin.class index 323a9d6..06443b3 100644 Binary files a/bin/finalexam/Database/UserLogin.class and b/bin/finalexam/Database/UserLogin.class differ diff --git a/src/finalexam/Database/CashierStatistics.java b/src/finalexam/Database/CashierStatistics.java index 5b5b1b7..665a7e3 100644 --- a/src/finalexam/Database/CashierStatistics.java +++ b/src/finalexam/Database/CashierStatistics.java @@ -71,4 +71,4 @@ public class CashierStatistics { pstmt.close(); conn.close(); } -} \ No newline at end of file +} diff --git a/src/finalexam/Database/PasswordChange.java b/src/finalexam/Database/PasswordChange.java index 1c7b83a..1db3526 100644 --- a/src/finalexam/Database/PasswordChange.java +++ b/src/finalexam/Database/PasswordChange.java @@ -4,81 +4,68 @@ import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; -import java.sql.SQLException; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class PasswordChange { - static final String DBURL = "jdbc:mysql://localhost:3306/xiaoshou?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT"; + private static final String DBDRIVER = "com.mysql.cj.jdbc.Driver"; + private static final String DBURL = "jdbc:mysql://localhost:3306/xiaoshou?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT"; - public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - Connection conn = null; + public static void main(String[] args) throws Exception { + Class.forName(DBDRIVER); + Connection conn = DriverManager.getConnection(DBURL); PreparedStatement pstmt = null; ResultSet rs = null; - try { - Class.forName("com.mysql.cj.jdbc.Driver"); - conn = DriverManager.getConnection(DBURL); - System.out.print("请输入用户名:"); - String username = scanner.nextLine(); - String checkUserSql = "SELECT xingming FROM t_yong WHERE yonghuming=?"; - pstmt = conn.prepareStatement(checkUserSql); - pstmt.setString(1, username); - rs = pstmt.executeQuery(); - if (!rs.next()) { - System.out.println("该用户不存在,请重新输入"); - return; - } - System.out.print("请输入当前用户的原密码:"); - String oldPassword = scanner.nextLine(); - String checkPasswordSql = "SELECT xingming FROM t_yong WHERE yonghuming=? AND mima=MD5(?)"; - pstmt = conn.prepareStatement(checkPasswordSql); - pstmt.setString(1, username); - pstmt.setString(2, oldPassword); - rs = pstmt.executeQuery(); - if (!rs.next()) { - System.out.println("原密码输入不正确,请重新输入"); - return; - } - String newPassword; - while (true) { - System.out.print("请设置新的密码:"); - newPassword = scanner.nextLine(); - if (!isPasswordComplex(newPassword)) - System.out.println("您的密码不符合复杂性要求(密码长度不少于6个字符,至少有一个小写字母,至少有一个大写字母,至少一个数字),请重新输入:"); - else - break; - } - System.out.print("请输入确认密码:"); - String confirmPassword = scanner.nextLine(); - if (!newPassword.equals(confirmPassword)) { - System.out.println("两次输入的密码必须一致,请重新输入确认密码:"); - return; - } - String updatePasswordSql = "UPDATE t_yong SET mima=? WHERE yonghuming=?"; - pstmt = conn.prepareStatement(updatePasswordSql); - pstmt.setString(1, Encrypt.MD5(newPassword)); - pstmt.setString(2, username); - int result = pstmt.executeUpdate(); - if (result > 0) - System.out.println("您已成功修改密码,请谨记"); - else - System.out.println("密码修改失败,请重试"); - } catch (Exception e) { - e.printStackTrace(); - } finally { - try { - if (rs != null) - rs.close(); - if (pstmt != null) - pstmt.close(); - if (conn != null) - conn.close(); - } catch (SQLException se) { - se.printStackTrace(); - } + Scanner scanner = new Scanner(System.in); + System.out.print("请输入用户名:"); + String username = scanner.nextLine(); + String checkUserSql = "SELECT xingming FROM t_yong WHERE yonghuming=?"; + pstmt = conn.prepareStatement(checkUserSql); + pstmt.setString(1, username); + rs = pstmt.executeQuery(); + if (!rs.next()) { + System.out.println("该用户不存在,请重新输入"); + return; } + System.out.print("请输入当前用户的原密码:"); + String oldPassword = scanner.nextLine(); + String checkPasswordSql = "SELECT xingming FROM t_yong WHERE yonghuming=? AND mima=MD5(?)"; + pstmt = conn.prepareStatement(checkPasswordSql); + pstmt.setString(1, username); + pstmt.setString(2, oldPassword); + rs = pstmt.executeQuery(); + if (!rs.next()) { + System.out.println("原密码输入不正确,请重新输入"); + return; + } + String newPassword; + while (true) { + System.out.print("请设置新的密码:"); + newPassword = scanner.nextLine(); + if (!isPasswordComplex(newPassword)) + System.out.println("您的密码不符合复杂性要求(密码长度不少于6个字符,至少有一个小写字母,至少有一个大写字母,至少一个数字),请重新输入:"); + else + break; + } + System.out.print("请输入确认密码:"); + String confirmPassword = scanner.nextLine(); + if (!newPassword.equals(confirmPassword)) { + System.out.println("两次输入的密码必须一致,请重新输入确认密码:"); + return; + } + String updatePasswordSql = "UPDATE t_yong SET mima=? WHERE yonghuming=?"; + pstmt = conn.prepareStatement(updatePasswordSql); + pstmt.setString(1, Encrypt.MD5(newPassword)); + pstmt.setString(2, username); + int result = pstmt.executeUpdate(); + if (result > 0) + System.out.println("您已成功修改密码,请谨记"); + else + System.out.println("密码修改失败,请重试"); + rs.close(); + pstmt.close(); + conn.close(); } public static boolean isPasswordComplex(String password) { diff --git a/src/finalexam/Database/PermissionJudgment.java b/src/finalexam/Database/PermissionJudgment.java index a3f0161..a6b8c89 100644 --- a/src/finalexam/Database/PermissionJudgment.java +++ b/src/finalexam/Database/PermissionJudgment.java @@ -74,4 +74,4 @@ public class PermissionJudgment { pstmt.close(); conn.close(); } -} \ No newline at end of file +} diff --git a/src/finalexam/Database/ProductAdditionAndInquiry.java b/src/finalexam/Database/ProductAdditionAndInquiry.java index 4ac6503..fbdb12d 100644 --- a/src/finalexam/Database/ProductAdditionAndInquiry.java +++ b/src/finalexam/Database/ProductAdditionAndInquiry.java @@ -9,37 +9,38 @@ import java.sql.SQLException; import java.util.Scanner; public class ProductAdditionAndInquiry { + private static final String DBDRIVER = "com.mysql.cj.jdbc.Driver"; private static final String DBURL = "jdbc:mysql://localhost:3306/xiaoshou?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT"; - public static void main(String[] args) { + public static void main(String[] args) throws Exception { + Class.forName(DBDRIVER); + Connection conn = DriverManager.getConnection(DBURL); Scanner scanner = new Scanner(System.in); int choice; - try (Connection conn = DriverManager.getConnection(DBURL)) { - do { - System.out.println("===超市商品管理维护===="); - System.out.println("1、输入商品"); - System.out.println("2、查询商品"); - System.out.println("3、退出"); - System.out.print("请选择(1-3):"); - choice = scanner.nextInt(); - scanner.nextLine(); - switch (choice) { - case 1: - addProduct(scanner, conn); - break; - case 2: - queryProduct(scanner, conn); - break; - case 3: - System.out.println("退出系统"); - break; - default: - System.out.println("无效选择,请重新选择(1-3):"); - } - } while (choice != 3); - } catch (SQLException e) { - e.printStackTrace(); - } + + do { + System.out.println("===超市商品管理维护===="); + System.out.println("1、输入商品"); + System.out.println("2、查询商品"); + System.out.println("3、退出"); + System.out.print("请选择(1-3):"); + choice = scanner.nextInt(); + scanner.nextLine(); + switch (choice) { + case 1: + addProduct(scanner, conn); + break; + case 2: + queryProduct(scanner, conn); + break; + case 3: + System.out.println("退出系统"); + break; + default: + System.out.println("无效选择,请重新选择(1-3):"); + } + } while (choice != 3); + conn.close(); } private static void addProduct(Scanner scanner, Connection conn) throws SQLException { diff --git a/src/finalexam/Database/ProductModificationAndDeletion.java b/src/finalexam/Database/ProductModificationAndDeletion.java index e6ccb73..afa676f 100644 --- a/src/finalexam/Database/ProductModificationAndDeletion.java +++ b/src/finalexam/Database/ProductModificationAndDeletion.java @@ -79,4 +79,4 @@ public class ProductModificationAndDeletion { pstmt.close(); conn.close(); } -} \ No newline at end of file +} diff --git a/src/finalexam/Database/UserLogin.java b/src/finalexam/Database/UserLogin.java index ba8226f..329f447 100644 --- a/src/finalexam/Database/UserLogin.java +++ b/src/finalexam/Database/UserLogin.java @@ -4,63 +4,50 @@ import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; -import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class UserLogin { - static final String DBURL = "jdbc:mysql://localhost:3306/xiaoshou?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT"; + private static final String DBDRIVER = "com.mysql.cj.jdbc.Driver"; + private static final String DBURL = "jdbc:mysql://localhost:3306/xiaoshou?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT"; - public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - Connection conn = null; + public static void main(String[] args) throws Exception { + Class.forName(DBDRIVER); + Connection conn = DriverManager.getConnection(DBURL); PreparedStatement pstmt = null; ResultSet rs = null; - try { - Class.forName("com.mysql.cj.jdbc.Driver"); - conn = DriverManager.getConnection(DBURL); - int attempts = 0; - boolean loginSuccess = false; - while (attempts < 3 && !loginSuccess) { - System.out.println("欢迎使用阳光超市收银系统,请登陆"); - System.out.print("请输入用户名: "); - String username = scanner.nextLine(); - System.out.print("请输入密码: "); - String password = scanner.nextLine(); - String sql = "SELECT xingming FROM t_yong WHERE yonghuming=? AND mima=?"; - pstmt = conn.prepareStatement(sql); - pstmt.setString(1, username); - pstmt.setString(2, Encrypt.MD5(password)); - rs = pstmt.executeQuery(); - if (rs.next()) { - loginSuccess = true; - String xingming = rs.getString("xingming"); - SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒"); - String currentTime = formatter.format(new Date()); - System.out.println("欢迎使用阳光超市收银系统"); - System.out.println("当前收银员:" + xingming); - System.out.println("当前时间:" + currentTime); - } else { - System.out.println("用户名或密码不正确,请重新输入"); - attempts++; - } - } - if (!loginSuccess) - System.out.println("最多只能尝试3次"); - } catch (Exception e) { - e.printStackTrace(); - } finally { - try { - if (rs != null) - rs.close(); - if (pstmt != null) - pstmt.close(); - if (conn != null) - conn.close(); - } catch (SQLException se) { - se.printStackTrace(); + Scanner scanner = new Scanner(System.in); + int attempts = 0; + boolean loginSuccess = false; + while (attempts < 3 && !loginSuccess) { + System.out.println("欢迎使用阳光超市收银系统,请登陆"); + System.out.print("请输入用户名: "); + String username = scanner.nextLine(); + System.out.print("请输入密码: "); + String password = scanner.nextLine(); + String sql = "SELECT xingming FROM t_yong WHERE yonghuming=? AND mima=?"; + pstmt = conn.prepareStatement(sql); + pstmt.setString(1, username); + pstmt.setString(2, Encrypt.MD5(password)); + rs = pstmt.executeQuery(); + if (rs.next()) { + loginSuccess = true; + String xingming = rs.getString("xingming"); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒"); + String currentTime = formatter.format(new Date()); + System.out.println("欢迎使用阳光超市收银系统"); + System.out.println("当前收银员:" + xingming); + System.out.println("当前时间:" + currentTime); + } else { + System.out.println("用户名或密码不正确,请重新输入"); + attempts++; } } + if (!loginSuccess) + System.out.println("最多只能尝试3次"); + rs.close(); + pstmt.close(); + conn.close(); } }