zoukankan      html  css  js  c++  java
  • 第15周作业

    一、题目

      编写一个应用程序,输入用户名和密码,访问test数据库中t_login表(字段包括id、username、password),验证登录是否成功。当登录成功后,将t_user表(id、name、sex、birthday)的信息进行显示(要求使用DB.java完成登录和获取t_user表中数据的操作),最后再对t_user表进行一条记录的添加操作。

    二、代码

    DB.java

    /*
     * 创建DB类,分别定义加载驱动器和连接方法、查询方法,增删改方法,和关闭流方法
     */
    package jdbc;
    
    import java.sql.*;
    
    public class DB {
         private static DB db;
         private PreparedStatement pre;
         private ResultSet rs;
         private Connection con;
         public static DB getInstance(){
                if(db==null){
                    db=new DB();
                }
                return db;
            }
        DB(){
             try {
                    con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test1","root","0000");
                    
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
        }
        static {//加载连接桥
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        //查询方法
        ResultSet  getQuery(String sql,Object[] args){
            //3
            try {
                  pre=con.prepareStatement(sql);
                  if(args.length > 0) {
                        for(int i = 0; i < args.length; i++) {
                            pre.setObject(i+1, args[i]);
                        }
                    }
                    rs=pre.executeQuery();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return rs;
        }
        //增删改方法
        int  getUpdate(String sql,Object[] args){
            int n = 0;
            try {
                 pre=con.prepareStatement(sql);
                 if(args.length > 0) {
                        for(int i = 0; i < args.length; i++) {
                            pre.setObject(i+1, args[i]);
                        }
                    }
                    n=pre.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return n;
        }
        //关闭流
        void close(){
            try {
                 if(rs != null){
                        rs.close();                
                    }
                    pre.close();
                    con.close(); 
            } catch (SQLException e) {
                    e.printStackTrace();
            }
            
        }
    
    }

    UserAdd.java

    /*
     * 创建用户增加类,增添数据
     */
    package jdbc;
    
    
    public class UserAdd {
    
        public void addUser(String name,String sex,String birthday) {
            
            String sqlAdd = "insert into t_user  (name,sex,birthday) value(?,?,?)";
            Object[] value ={name,sex,birthday} ;
            int n = DB.getInstance().getUpdate(sqlAdd,value);
            if (n > 0) {//判断是否修改了行数
                System.out.println("插入数据成功");
            } else {
                System.out.println("插入数据失败");
            }
            DB.getInstance().close();
    
        }
    }

    UserSelect.java

    /*
     * 创建查询用户表类,获取用户表信息
     */
    package jdbc;
    
    
    import java.sql.*;
    
    public class UserSelect {
        ResultSet rs;
        public void allUser() {
    
            String sqlQuery = "SELECT * FROM  t_user";
            Object[] value={};
            rs = DB.getInstance().getQuery(sqlQuery,value);
            try {
                System.out.println("序号        用户名         性别      生日");
                while (rs.next()) { // 将结果集的指针下下移,如果结果集结束,返回-1
                    //分别获得用户表每一列信息
                    int id = rs.getInt(1);
                    String name = rs.getString(2);
                    String sex = rs.getString(3);
                    String birthday = rs.getString(4);
                    System.out.println(id + "      " + name + "       "
                            + sex + "        " + birthday);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
        }
    }

    UserLogin.java

    /*
     * 创建系统登录类,登陆成功后,可以查询数据和添加数据
     */
    package jdbc;
    
    import java.sql.*;
    import java.util.*;
    
    public class UserLogin {
    
        public static void main(String[] args) {
            Scanner reader = new Scanner(System.in);
            System.out.println("输入用户名:");
            String username = reader.next();
            System.out.println("输入密码:");
            String password = reader.next();
            //声明对象
            ResultSet rs = null;
            try {
                String sql = "select * from t_login where username=? and password = ?";
                Object[] value={username,password};
                rs = DB.getInstance().getQuery(sql,value);
                boolean b = rs.next();
                if (b) {
                    System.out.println("登录成功,进入系统管理");
                    System.out.println("1 用户增加  2 用户查询  3系统退出");
                    int n = reader.nextInt();
                    while(true){
                        switch (n) {
                        case 1: {
                            UserAdd adduser = new UserAdd();//创建增加用户类对象
                            System.out.println("用户名");  String  name = reader.next();
                            System.out.println("性别");    String  sex = reader.next();
                            System.out.println("生日");    String  birthday = reader.next();
                            adduser.addUser(name, sex,birthday);
                            break;
                        }
                        case 2:{
                            UserSelect  allUser = new UserSelect();//创建用户查询对象
                            allUser.allUser();
                            break;
                        }
                        case 3:{
                            System.out.println("程序结束");System.exit(0);
                        }
                        }
                        System.out.println("1 用户增加  2 用户查询  3系统退出");
                        n = reader.nextInt();
                    }
                    
                    
                } else {
                    System.out.println("登录失败");
                }
                DB.getInstance().close();//关闭流
            } catch (SQLException e) {
                System.out.println("DB连接错误");
                e.printStackTrace();
            }
        }
    }

    三、运行结果

     

     

  • 相关阅读:
    Microsoft NNI入门
    【神经网络搜索】Efficient Neural Architecture Search
    Sphinx 快速构建工程文档
    Ubuntu16.04 Cuda11.1 Cudnn8.1 Tensorflow2.4 PyTorch1.7环境配置
    【CV中的Attention机制】ShuffleAttention
    【有趣的NAS】NAS-RL(ICLR2017)
    分类器
    将url下载到本地
    缓存管理器
    大数据数据结构-分类模型
  • 原文地址:https://www.cnblogs.com/weiyiren666/p/12017151.html
Copyright © 2011-2022 走看看