使用JDBC工具类实现简单的登录管理系统

这篇文章主要为大家详细介绍了使用JDBC工具类实现简单的登录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

使用JDBC工具类实现一个简单的登录管理系统,供大家参考,具体内容如下

实现要求:

在控制台实现一个用户管理系统,包含3个功能:

1.用户登录  2.注册  3.用户查询。

启动程序后,进入主菜单选项:

输出:“请选择您要操作的功能:1.用户登录  2.新用户注册 3所有用户查询: ”

功能说明:

1.用户登录:

请用户输入用户名和密码,接收后,去数据库的users表中查询是否存在该用户名。并输出合理的提示,例如:登录成功!  用户名不存在! 密码错误!

不论登录是否成功,都返回主菜单界面。

2.新用户注册 :

请用户输入用户名和密码,接收后,去数据库的users表中执行新增操作。并输出合理的提示,例如:注册成功!  用户名已存在! 

3.所有用户查询:

该功能必须在用户登录后方可查看,如果用户已经登录成功,即可在控制台查看所有用户的所有信息。如果没有登录,提示:您还没有登录呢,无权查看用户信息!

第一步:创建JDBCUtils类和jdbc.properties文件

user=root password=123456 url=jdbc:mysql://localhost:3306/db2?useSSLfalse&serverTimezone=UTC
//1.获取连接对象  2.关闭连接对象---取代单元测试中的  @Before 和 @After 3.实现登录验证 public class JDBCUtils {     private static Connection conn;     private static Properties prop;     private  static PreparedStatement prep;     private static ResultSet rs;     static {         try {         //使用类加载器加载jdbc.properties文件,返回一个字节流,和Properties关联在一起             InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");             //创建Properties对象             prop = new Properties();             prop.load(is);         } catch (Exception e) {             e.printStackTrace();         }     }     //1.获取连接对象     public static Connection getConnection(){         try {             return DriverManager.getConnection(prop.getProperty("url"),prop);         } catch (SQLException e) {             e.printStackTrace();         }         return null;     }     //2.释放资源     public static void close(ResultSet rs, Statement state,Connection conn){         if(rs !=null){             try {                 rs.close();             } catch (SQLException e) {                 e.printStackTrace();             }         }         if(state !=null){             try {                 state.close();             } catch (SQLException e) {                 e.printStackTrace();             }         }         if(conn !=null){             try {                 conn.close();             } catch (SQLException e) {                 e.printStackTrace();             }         }     }     3.//判断登录     public  static  boolean login(String user,String password){     //3.1获取连接对象         Connection conn = JDBCUtils.getConnection();         try {          //3.2定义sql             String sql="select * from user where username=? and password=?";             //3.3获取执行sql的对象             prep = conn.prepareStatement(sql);             //3.3.1 给占位符赋值             prep.setString(1,user);             prep.setString(2,password);             //3.4执行sql             ResultSet rs = prep.executeQuery();             return rs.next();         } catch (SQLException e) {             e.printStackTrace();         } finally{         //3.4调用关闭连接静态方法             JDBCUtils.close(rs,prep,conn);             }         return false;     } }

第二步:创建测试类:Hello01

public class Hello01 {     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         Connection conn=null;         PreparedStatement prep=null;         ResultSet rs=null;         Statement state=null;         //判断是否登录过,如果没有登录,就无法查询         boolean a=false;         //判断用户是否登录,登录过就无法再次登录         boolean b=true;         String name;         String psw;         while (true){             System.out.println("请输入你要执行的操作:1.登录 2.注册 3.查询");             int i = sc.nextInt();             switch (i){                 case 1:                     if(b){                         System.out.println("请输入你的账号:");                         name= sc.next();                         System.out.println("请输入你的密码:");                         psw= sc.next();                         //JDBCUtils.login(name,psw) 这个方法的返回值是Boolean类型 可以当if的条件判断                         if(JDBCUtils.login(name,psw)){                             System.out.println("恭喜您登录成功");                             //登录成功 a的值变为turn                               a=true;                         } else {                             System.out.println("不好意思登录失败,请重新操作!!!");                         }                         b=false;                     }else {                         System.out.println("您已经登录!!!");                     }                     break;                 case 2:                     try {                         System.out.println("请输入您要注册的账号:");                         name = sc.next();                         conn = JDBCUtils.getConnection();                         //开启事务                         conn.setAutoCommit(false);                         while (true){                         String sql = "select * from user where username=?";                         prep = conn.prepareStatement(sql);                         prep.setString(1,name);                          rs = prep.executeQuery();                         if(rs.next()){                             System.out.println("用户名已存在,请重新输入:");                             name = sc.next();                         }else {                             break;                         }                          }                         System.out.println("请输入您的密码:");                         psw = sc.next();                         String sql1="insert into user values (null,?,?)";                          prep = conn.prepareStatement(sql1);                          prep.setString(1,name);                          prep.setString(2,psw);                          prep.executeUpdate();                          //int i1=3/0;                         System.out.println("恭喜您注册成功!!!");                         //提交事务                         conn.commit();                     } catch (SQLException e) {                         try {                             //事务回滚                             conn.rollback();                         } catch (SQLException ex) {                             ex.printStackTrace();                         }                         e.printStackTrace();                     }finally {                         JDBCUtils.close(rs,prep,conn);                     }                     break;                 case 3:                 //当a的值为turn时才可以查询 否则返回操作页面                     if(a){                         try {                             conn = JDBCUtils.getConnection();                             String sql ="select * from user";                             state = conn.createStatement();                             rs = state.executeQuery(sql);                             ArrayList users = new ArrayList<>();                             while (rs.next()){                                 int id = rs.getInt("id");                                 String username = rs.getString("username");                                 String password = rs.getString("password");                                 User user = new User(id,username,password);                                 users.add(user);                                 System.out.println(user);                             }                         } catch (SQLException e) {                             e.printStackTrace();                         } finally {                             JDBCUtils.close(rs,state,conn);                         }                     }else {                         System.out.println("请先登录,在查询!!!");                     }                     break;             }         }     } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持0133技术站。

以上就是使用JDBC工具类实现简单的登录管理系统的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java