zoukankan      html  css  js  c++  java
  • JDBC24homework

    编写程序:

    创建一个类DBTools,在DBTools中创建一个方法find,find方法用于对数据库进行查询操作,现在要求将结果集封装成数组线性表嵌套数组的形式:

    ArrayList<String[]> rsList = new ArrayList<String[]>()形式

    其中:    String[] 用于存储一行记录的所有字段(的值)

                  rsList存储所有的数组(String[]),即记录的总数

     

     1,需要先创建一个用户的基本信息作为一个类,这样在其他类中可以直接定义为此类类型的对象。

      1 package com.xt.java.base25;
      2 
      3 public class User {
      4     
      5     private String userId;
      6     
      7     private String userName;
      8     
      9     private String password;
     10     
     11     private String email;
     12     
     13     private String telNo;
     14     
     15     private String gender;
     16     
     17     private String memo;
     18     
     19     private double salary;
     20 
     21     /**
     22      * @return the userId
     23      */
     24     public String getUserId() {
     25         return userId;
     26     }
     27 
     28     /**
     29      * @param userId the userId to set
     30      */
     31     public void setUserId(String userId) {
     32         this.userId = userId;
     33     }
     34 
     35     /**
     36      * @return the userName
     37      */
     38     public String getUserName() {
     39         return userName;
     40     }
     41 
     42     /**
     43      * @param userName the userName to set
     44      */
     45     public void setUserName(String userName) {
     46         this.userName = userName;
     47     }
     48 
     49     /**
     50      * @return the password
     51      */
     52     public String getPassword() {
     53         return password;
     54     }
     55 
     56     /**
     57      * @param password the password to set
     58      */
     59     public void setPassword(String password) {
     60         this.password = password;
     61     }
     62 
     63     /**
     64      * @return the email
     65      */
     66     public String getEmail() {
     67         return email;
     68     }
     69 
     70     /**
     71      * @param email the email to set
     72      */
     73     public void setEmail(String email) {
     74         this.email = email;
     75     }
     76 
     77     /**
     78      * @return the telNo
     79      */
     80     public String getTelNo() {
     81         return telNo;
     82     }
     83 
     84     /**
     85      * @param telNo the telNo to set
     86      */
     87     public void setTelNo(String telNo) {
     88         this.telNo = telNo;
     89     }
     90 
     91     /**
     92      * @return the gender
     93      */
     94     public String getGender() {
     95         return gender;
     96     }
     97 
     98     /**
     99      * @param gender the gender to set
    100      */
    101     public void setGender(String gender) {
    102         this.gender = gender;
    103     }
    104 
    105     /**
    106      * @return the memo
    107      */
    108     public String getMemo() {
    109         return memo;
    110     }
    111 
    112     /**
    113      * @param memo the memo to set
    114      */
    115     public void setMemo(String memo) {
    116         this.memo = memo;
    117     }
    118 
    119     /**
    120      * @return the salary
    121      */
    122     public double getSalary() {
    123         return salary;
    124     }
    125 
    126     /**
    127      * @param salary the salary to set
    128      */
    129     public void setSalary(double salary) {
    130         this.salary = salary;
    131     }
    132 
    133     /* (non-Javadoc)
    134      * @see java.lang.Object#toString()
    135      */
    136     @Override
    137     public String toString() {
    138         return "User [userId=" + userId + ", userName=" + userName + ", password=" + password + ", email=" + email
    139                 + ", telNo=" + telNo + ", gender=" + gender + ", memo=" + memo + ", salary=" + salary + "]";
    140     }
    141     
    142     
    143     
    144 
    145 }

    2,创建一个数据库databases access objected和数据库建立联系直接调用,这样写一次就行了

    package com.xt.java.base25;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class UserDAO {
        private Connection conn;
        private Statement stat;
        private String  url="jdbc:mysql://localhost:3306/lyxdatabases";
        private String dbDriver="com.mysql.jdbc.Driver";
        private String userName="root";
        private String password="1234";
        //私有的构造方法,只有在本类中可以进行实例化一次,为了保护用户的隐私使用这种方法,切记!!!
        private UserDAO(){
            
        }
            
        private static UserDAO uda=null;
        /**
         * 写一个方法,从方法中获得实例,只能实例化一次。
         */
        
        public static UserDAO getUserDAO(){
            if(uda==null){
                uda=new UserDAO();
            }
            return uda;
        }
        
        public Connection getConnection() throws Exception{
              try {
                Class.forName(dbDriver);
                return DriverManager.getConnection(url,userName,password);
            } catch (ClassNotFoundException e) {
                throw new ClassNotFoundException("数据库找不到驱动!!");
            } catch (SQLException e) {
                throw new SQLException("数据库连接异常!!");
            }
        }
        
        //关闭Connection
        public void closeConnection(Connection conn){
            try{
                if(conn!=null){
                    conn.close();
                }
                
            }catch(Exception e){
                System.out.println(e);
            }
        }
    
        
        //关闭Statement
        public void closeStatement(Statement stat){
            try{
                if(stat!=null){
                    stat.close();
                }
                
            }catch(Exception e){
                System.out.println(e);
            }
        }
        //关闭ResultSet
        public void closeResultSet(ResultSet rs){
            try{
                if(rs!=null){
                    rs.close();
                }
                
            }catch(Exception e){
                System.out.println(e);
            }
        }
    }

    3

    创建一个类DBTools,在DBTools中创建一个方法find,find方法用于对数据库进行查询操作,现在要求将结果集封装成数组线性表嵌套数组的形式:

    ArrayList<String[]> rsList = new ArrayList<String[]>()形式

     

    package com.xt.java.base25;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.Iterator;
    
    /**
     * 创建一个类DBTools,在DBTools中创建一个方法find,find方法用于对数据库进行查询操作,
     * 现在要求将结果集封装成数组线性表嵌套数组的形式:
    ArrayList<String[]> rsList = new ArrayList<String[]>()形式
    其中:    String[] 用于存储一行记录的所有字段(的值)
            rsList存储所有的数组(String[]),即记录的总数
    
    
     * @author LENOVO
     *
     */
    public class DBtools {
        Connection conn;
        Statement stat;
        ResultSet rs;
        UserDAO udao=UserDAO.getUserDAO();
        
        public void find(String userID){
            ArrayList<String> rsList=new ArrayList<String>(20);
            String sql="select*from user where userID="+userID;
            
            try {
                conn=udao.getConnection();
                stat=conn.createStatement();
                rs=stat.executeQuery(sql);
                while(rs.next()){
                    User user=new User();
                    user.setUserId(rs.getString(1));
                    user.setUserName(rs.getString(2));
                    user.setPassword(rs.getString(3));
                    user.setEmail(rs.getString(4));
                    user.setTelNo(rs.getString(5));
                    user.setGender(rs.getString(6));
                    user.setMemo(rs.getString(7));
                    user.setSalary(rs.getDouble(8));
                    
                rsList.add(user.toString());
                }
                Iterator<String> iterator=rsList.iterator();
                while(iterator.hasNext()){
                    System.out.println(iterator.next());
                }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                udao.closeResultSet(rs);
                udao.closeStatement(stat);
                udao.closeConnection(conn);
            }
            
            
        }
        public static void main(String[] args) {
            DBtools dbt=new DBtools();
            dbt.find("123");
            
            
        }
    
    }
  • 相关阅读:
    Java 反射机制 ( Java Reflection Mechanism )
    Excel&合并单元格内容无效
    UNIX环境高级编程(19-伪终端)
    UNIX环境高级编程(18-终端I/O)
    UNIX环境高级编程(15-进程间通信)
    UNIX环境高级编程(14-高级I/O)
    UNIX环境高级编程(13-守护进程)
    UNIX环境高级编程(12-线程控制)
    UNIX环境高级编程(11-线程)
    C专家编程(4)
  • 原文地址:https://www.cnblogs.com/lyxcode/p/7396615.html
Copyright © 2011-2022 走看看