JDBC练习题,用户信息管理,登录注册

来源:互联网 发布:查自己淘宝的虚假交易 编辑:程序博客网 时间:2024/05/22 09:02
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Scanner;public class UserTest {static Scanner s= new Scanner(System.in);static int id;//用户id不可更改public static void main(String[] args) throws Exception {System.out.println("#欢迎进入我的页面#\n输入功能对应的数字进行相应操作\n1:登录\t2:注册\t3:退出");int k=s.nextInt();if(k==1) {UserUtil.logIn();}if(k==2) {UserUtil.register();}if(k==3) {System.out.println("成功退出,程序终止");System.exit(0);}s.close();}private static Connection getConnection() {try {//加载驱动Class.forName("com.mysql.jdbc.Driver");//获得连接Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/java1710","root","0325");return con;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}/** * 用户工具包,具有登录,注册,修改,查询,删除功能 */public static class UserUtil{static Connection con=getConnection();//查询数据中是否包含输入的用户名private static boolean checkName(String name) {try(PreparedStatement ps=con.prepareStatement("select username from t_user where username=?");){ps.setString(1, name);ResultSet rs=ps.executeQuery();if(rs.next()) {rs.close();return true;}}catch(Exception e) {e.printStackTrace();}return false;}/** * 查询密码是否正确 * @param pwd * @return */private static boolean checkPwd(String pwd) {try(PreparedStatement ps = con.prepareStatement("SELECT PWD FROM T_USER WHERE pwd=? AND id=?");){ps.setString(1, pwd);ps.setInt(2, id);ResultSet rs=ps.executeQuery();if(rs.next()) {rs.close();return true;}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}//如果该用户名不存在,返回falsereturn false;}/** * 检查用户名和密码信息 * @param name * @param pwd * @return */private static boolean checkInfo(String name,String pwd) {try(PreparedStatement ps = con.prepareStatement("SELECT * FROM T_USER WHERE USERNAME=? AND PWD=? ");){ps.setString(1, name);ps.setString(2, pwd);ResultSet rs=ps.executeQuery();if(rs.next()) {id=rs.getInt("id");rs.close();return true;}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}//如果该用户名不存在,返回falsereturn false;}/** * 登录,查询数据 */public static void logIn() {System.out.println("请输入用户名");String name=s.next();System.out.println("请输入密码");String pwd=s.next();if(checkInfo(name,pwd)) {System.out.println("登录成功,你可以使用以下功能");System.out.println("1:修改用户信息\t2:删除用户信息\t3:查询所有用户信息");int n=s.nextInt();if(n==1) {UserUtil.updateInfo();}if(n==2) {UserUtil.delete();}if(n==3) {UserUtil.select();}}else {System.out.println("密码或用户名输入错误,请重新登录");logIn();}}/** * 注册(向数据库中插入数据) */public static void register(){try(PreparedStatement ps=con.prepareStatement("insert into t_user values(null,?,?,?)")){//设置不自动提交con.setAutoCommit(false);System.out.println("请输入注册用户名");String name=s.next();//判断用户名是否已存在while(checkName(name)) {System.out.println("该用户名已被占用,请重新输入");name=s.next();}System.out.println("请输入注册密码");String pwd=s.next();System.out.println("请输入邮箱(选填)");String email=s.next();ps.setString(1, name);ps.setString(2, pwd);ps.setString(3, email);ps.execute();con.commit();//提交注册信息System.out.println("注册成功,即将为你跳转登录界面......");logIn();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void updateInfo(){try(PreparedStatement ps=con.prepareStatement("UPDATE T_USER SET USERNAME=?,PWD=?,EMAIL=? WHERE ID=?")){//设置不自动提交con.setAutoCommit(false);System.out.println("请输入新的用户名");String name=null;;//判断用户名是否已存在while(checkName((name=s.next()))) {System.out.println("该用户名已被占用,请重新输入");}System.out.println("请输入新的密码");String pwd=null;while(checkPwd((pwd=s.next()))) {System.out.println("新密码不能与原密码相同,请重新输入");}System.out.println("请输入新的邮箱");String email=s.next();ps.setString(1, name);ps.setString(2, pwd);ps.setString(3, email);ps.setInt(4, id);ps.execute();con.commit();//提交修改信息System.out.println("修改成功,下次登录有效");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}/** * 查询功能 */private static void selectInfo() {try(PreparedStatement ps=con.prepareStatement("SELECT * FROM T_USER")){ResultSet rs=ps.executeQuery();while(rs.next()) {System.out.println("用户ID:"+rs.getInt(1)+"\t用户名:"+rs.getString(2));}}catch(Exception e) {e.printStackTrace();}}private static void selectInfo(String name) {try(PreparedStatement ps=con.prepareStatement("SELECT * FROM T_USER WHERE username=?")){ps.setString(1, name);ResultSet rs=ps.executeQuery();if(!rs.next()) {System.out.println("查询的用户不存在");}while(rs.next()) {System.out.println("用户ID:"+rs.getInt(1)+"\t用户名:"+rs.getString(2));}}catch(Exception e) {e.printStackTrace();}}public static void select() {System.out.println("-=-=-=-查询功能-=-=-=-\n1:查询全部\t2:根据用户名查询");int m=s.nextInt();if(m==1) {UserUtil.selectInfo();}if(m==2) {System.out.println("请输入要查询的用户名");String name=s.next();UserUtil.selectInfo(name);}}/** * 删除用户信息 */public static void delete() {String sql="delete from table where id=?";try(PreparedStatement ps=con.prepareStatement(sql)){ps.setInt(1, id);System.out.println("成功删除当前登录用户数据");}catch(Exception e) {e.printStackTrace();}}}}

阅读全文
1 1
原创粉丝点击