jdbc用户登录,使用jdbc操作数据库

  jdbc用户登录,使用jdbc操作数据库

  用JDBC工具类实现一个简单的登录管理系统,供你参考。具体情况如下

  00-1010在控制台实现用户管理系统,包括3个功能:

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

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

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

  

实现要求:

1.用户登录:

 

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

  无论登录成功与否,返回主菜单界面。

  2.新用户注册 :

  请输入用户名和密码,并在收到它们后,转到数据库的用户表来执行新的操作。并输出合理的提示,如:注册成功!用户名已经存在!

  3.所有用户查询:

  该功能只有在用户登录后才能查看。如果用户成功登录,可以在控制台中查看所有用户的所有信息。如果未登录,提示:您尚未登录,无权查看用户信息!

  创建第一步:JDBC utils类和jdbc.properties文件。

  user=root password=123456 URL=JDBC : my SQL ://localhost :3306/DB2?Uselfaleservertimezone=UTC//1。获取连接对象2。关闭连接对象-在单元测试中替换@Before和@After 3。实现登录验证公共类JDBC utils { private static connection conn;私有静态属性prop私有静态PreparedStatement prep私有静态结果集RS;Static {try {//使用类加载器加载jdbc。属性文件,并返回一个与属性相关联的字节流。InputStream is=JDBC utils . class . getclass loader()。GetResourceStream( JDBC . properties );//创建Properties对象prop=new Properties();prop.load(是);} catch(Exception e){ e . printstacktrace();}} //1.获取连接对象公共静态连接getconnection(){ try { return driver manager . getconnection(prop . getproperty( URL ),prop);} catch(SQLException e){ e . printstacktrace();}返回null} //2.释放资源公共静态void close (resultsets 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.//判断公共静态布尔登录的登录(字符串user,字符串passwor

  d){    //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<User> 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;            }        }    }}

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

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些
  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些,关系型数据库与非关系型数据库简介
  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 什么是分库分表,为什么要进行分库分表-,分库分表的区别,数据库分库分表是什么,什么情况下需要用分库分表
  • vb中adodb连接数据库,
  • treeview控件绑定数据,wpf treeview数据绑定,详解TreeView绑定数据库
  • sql的多表查询,数据库如何实现多表查询
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库,SQLServer2019 数据库的基本使用之图形化界面操作的实现
  • sql数据库定时备份怎么弄,mysql 定期备份
  • sql数据库定时备份怎么弄,mysql 定期备份,MySQL 数据库定时备份的几种方式(全面)
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar,SQL中varchar和nvarchar的基本介绍及其区别
  • 留言与评论(共有 条评论)
       
    验证码: