package com.homework; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Scanner; import com.util.JDBCUtil; import java.sql.Connection; /* * */ public class Login2 { static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { welcome(); } public static void welcome() { System.out.println("1 登录"); System.out.println("2 注册"); System.out.println("请选择:"); String number = scanner.nextLine(); switch (Integer.parseInt(number)) { case 1: login(); break; case 2: register(); break; default: System.out.println("输入有误!"); welcome(); break; } } public static void login() { System.out.println("*****用户登录*******"); System.out.println("请输入用户名:"); String username = scanner.nextLine(); System.out.println("请输入密码:"); String password = scanner.nextLine(); Connection conn = null; PreparedStatement stat = null; ResultSet rs = null; try { conn = JDBCUtil.getConnect(); String sql = "select * from t_user where username=? and password=?"; stat = conn.prepareStatement(sql); stat.setString(1, username); stat.setString(2, password); rs = stat.executeQuery(); // 创建表时指定了用户名唯一性约束 if (rs.next()) { System.out.println("登录成功"); int money = getMoney(username); System.out.println("你的账户余额是" + money + "元"); while (true) { loginWelcome(username); } } else { System.out.println("用户名或密码错误"); login(); } } catch (Exception e) { e.printStackTrace(); } finally { try { JDBCUtil.closeConnect(rs, stat, conn); } catch (Exception e) { e.printStackTrace(); } } } private static void loginWelcome(String username) { System.out.println("1 修改密码"); System.out.println("2 添加账户"); System.out.println("3 查看账户余额"); System.out.println("4 删除用户及账户"); System.out.println("请选择:"); String number = scanner.nextLine(); switch (Integer.parseInt(number)) { case 1: updatePwd(username); break; case 2: addAccount2(getId(username)); break; case 3: System.out.println("你的账户余额是" + getMoney(username)+ "元"); break; case 4: deleteAccount(username); deleteUser(username); System.exit(0); break; default: System.out.println("输入有误!"); loginWelcome(username); break; } } public static void register() { System.out.println("*****用户注册*******"); System.out.println("请输入要注册的用户名:"); String username = scanner.nextLine(); System.out.println("请输入要注册的密码:"); String password = scanner.nextLine(); Connection conn = null; PreparedStatement stat = null; ResultSet rs = null; try { conn = JDBCUtil.getConnect(); String sql = "insert into t_user(username,password) values(?,?)"; stat = conn.prepareStatement(sql); stat.setString(1, username); stat.setString(2, password); int count = stat.executeUpdate(); if(count>0) { System.out.println("注册成功!"); addAccount(getId(username)); } } catch (Exception e) { e.printStackTrace(); System.out.println("注册失败,用户名已存在"); register(); } finally { try { JDBCUtil.closeConnect(rs, stat, conn); } catch (Exception e) { e.printStackTrace(); } } } // 获取用户的id public static int getId(String username) { Connection conn = null; PreparedStatement stat = null; ResultSet rs = null; int id = 0; try { conn = JDBCUtil.getConnect(); String sql = "select id from t_user where username=?"; stat = conn.prepareStatement(sql); stat.setString(1, username); rs = stat.executeQuery(); if (rs.next()) { id = rs.getInt("id"); } } catch (Exception e) { e.printStackTrace(); } finally { return id; } } // 添加账户余额 public static void addAccount(int id) { Connection conn = null; PreparedStatement stat = null; ResultSet rs = null; try { conn = JDBCUtil.getConnect(); String sql = "insert into t_account values(null,10000,?)"; stat = conn.prepareStatement(sql); stat.setInt(1, id); int count = stat.executeUpdate(); if(count>0) { System.out.println("添加账户余额成功!"); login(); } else { System.out.println("添加账户余额失败"); } } catch (Exception e) { e.printStackTrace(); System.out.println("添加账户余额失败"); } finally { try { JDBCUtil.closeConnect(rs, stat, conn); } catch (Exception e) { e.printStackTrace(); } } } // 添加账户余额 public static void addAccount2(int id) { System.out.println("输入金额"); int money = Integer.parseInt(scanner.nextLine()); Connection conn = null; PreparedStatement stat = null; ResultSet rs = null; try { conn = JDBCUtil.getConnect(); String sql = "insert into t_account values(null,?,?)"; stat = conn.prepareStatement(sql); stat.setInt(1, money); stat.setInt(2, id); int count = stat.executeUpdate(); if(count>0) { System.out.println("添加账户余额成功!"); } else { System.out.println("添加账户余额失败"); } } catch (Exception e) { e.printStackTrace(); } finally { try { JDBCUtil.closeConnect(rs, stat, conn); } catch (Exception e) { e.printStackTrace(); } } } // 查询总余额 public static int getMoney(String username) { Connection conn = null; PreparedStatement stat = null; ResultSet rs = null; int id = getId(username); int money = 0; try { conn = JDBCUtil.getConnect(); String sql = "select sum(money) from t_account where u_id=?"; stat = conn.prepareStatement(sql); stat.setInt(1, id); rs = stat.executeQuery(); if(rs.next()) { money= rs.getInt(1); } } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtil.closeConnect(rs, stat, conn); return money; } } // 修改密码 public static void updatePwd(String username) { System.out.println("请输入旧密码"); String oldpwd = scanner.nextLine(); Connection conn = null; PreparedStatement stat = null; ResultSet rs = null; try { conn = JDBCUtil.getConnect(); String sql = "select * from t_user where username=? and password=?"; stat = conn.prepareStatement(sql); stat.setString(1, username); stat.setString(2, oldpwd); rs = stat.executeQuery(); // 创建表时指定了用户名唯一性约束 if (rs.next()) { JDBCUtil.closeConnect(rs, stat, conn); System.out.println("请输入新密码"); String pwd = scanner.nextLine(); Connection conn2 = null; PreparedStatement stat2 = null; ResultSet rs2 = null; try { conn2 = JDBCUtil.getConnect(); String sql2 = "update t_user set password=? where username=?"; stat2 = conn2.prepareStatement(sql2); stat2.setString(1, pwd); stat2.setString(2, username); int count2 = stat2.executeUpdate(); if(count2>0) { System.out.println("密码修改成功!"); } else { System.out.println("密码修改失败"); } } catch (Exception e) { e.printStackTrace(); } finally { try { JDBCUtil.closeConnect(rs2, stat2, conn2); } catch (Exception e) { e.printStackTrace(); } } } else { System.out.println("密码错误"); } } catch (Exception e) { e.printStackTrace(); } } // 删除账户 public static void deleteAccount(String username) { Connection conn = null; PreparedStatement stat = null; int id = getId(username); try { conn = JDBCUtil.getConnect(); String sql = "delete from t_account where u_id=?"; stat = conn.prepareStatement(sql); stat.setInt(1, id); int count=stat.executeUpdate(); if(count>0) { System.out.println("删除账户成功!"); } else { System.out.println("删除账户失败"); } } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtil.closeConnect(null, stat, conn); } } // 删除用户 public static void deleteUser(String username) { Connection conn = null; PreparedStatement stat = null; try { conn = JDBCUtil.getConnect(); String sql = "delete from t_user where username=?"; stat = conn.prepareStatement(sql); stat.setString(1, username); stat.executeUpdate(); System.out.println("删除用户成功"); } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtil.closeConnect(null, stat, conn); } } }
jdbc登录与注册
猜你喜欢
转载自www.cnblogs.com/zys2019/p/11211578.html
今日推荐
周排行