DBUtils之查詢(一)


ArrayHandler

將結果集中的第一條記錄封裝到一個Object[]數組中,數組中的每一個元素就是這條記錄中的每一個字段的值

ArrayListHandler

將結果集中的每一條記錄都封裝到一個Object[]數組中,將這些數組在封裝到List集合中。

BeanHandler

將結果集中第一條記錄封裝到一個指定的javaBean中。

BeanListHandler

將結果集中每一條記錄封裝到指定的javaBean中,將這些javaBean在封裝到List集合中

ColumnListHandler

將結果集中指定的列的字段值,封裝到一個List集合中

ScalarHandler

它是用於單數據。例如select count(*) from 表操作。

MapHandler

將結果集第一行封裝到Map集合中,Key 列名, Value 該列數據

MapListHandler

將結果集第一行封裝到Map集合中,Key 列名, Value 該列數據,Map集合存儲到List集合

  • ArrayHandler:
public static void myArrayHandler() throws SQLException {
        Connection con = MyJDBCUtiles.getConnection();
        String sql = "select * from userinfo where age = ?";
        Object [] param = {21};
        QueryRunner qr = new QueryRunner();
        Object [] result = qr.query(con,sql,new ArrayHandler(),param);
        for(Object res : result){
            System.out.print(res+"\t");
        }
        DbUtils.closeQuietly(con);
    }
  • 打印結果:

  • ArrayListHandler(注意接收結果集的數據類型)
public static void myArrayListHandler() throws SQLException {
        Connection con = MyJDBCUtiles.getConnection();
        String sql = "select * from userinfo where age = ?";
        Object [] param = {21};
        QueryRunner qr = new QueryRunner();
        List<Object[]> list = qr.query(con,sql,new ArrayListHandler(),param);
        for(Object[] obj : list){
            for (int i = 0; i < obj.length; i++) {
                System.out.print(obj[i]+"\t");
            }
            System.out.println();
        }
        DbUtils.closeQuietly(con);
    }
  • 打印結果:

  •  BeanHandler:
  • 存儲信息的類需要滿足以下條件
  1. 需要實現接口:java.io.Serializable ,通常實現接口這步驟省略了,不會影響程序;
  2. 提供私有字段:private 類型 字段名;

  3. 提供getter/setter方法;
  4. 提供無參構造。

存儲信息的類(Userinfo.java):

package com.kong.domain;

public class Userinfo {
    private int id;
    private String username;
    private String password;
    private int age;

    public Userinfo(int id, String username, String password, int age) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.age = age;
    }
    public Userinfo(){}

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
  •   實現代碼:
   //使用beanHandler
    public static void beanHandler() throws SQLException {
        Connection con = MyJDBCUtiles.getConnection();
        QueryRunner qr = new QueryRunner();
        String sql = "select * from userinfo where age = ?";
        Object [] param = {21};
        Userinfo userinfo = qr.query(con,sql,new BeanHandler<Userinfo>(Userinfo.class),param);
        //若沒有查詢到則會報空指針異常
        System.out.println(userinfo.getId()+"\t"+userinfo.getUsername()+"\t"+
                userinfo.getPassword()+"\t"+userinfo.getAge());
DbUtils.closeQuietly(con); }
  •   結果

 

  •        使用BeanListArray
public static void beanListHandler() throws SQLException {
        Connection con = MyJDBCUtiles.getConnection();
        QueryRunner qr = new QueryRunner();
        String sql = "select * from userinfo where age = ?";
        Object [] param = {21};
        List<Userinfo> list = qr.query(con,sql,new BeanListHandler<Userinfo>(Userinfo.class),param);
        //若沒有查詢到則list.size()=0
        for(Userinfo userinfo : list){
            System.out.println(userinfo.getId()+"\t"+userinfo.getUsername()+"\t"+
                    userinfo.getPassword()+"\t"+userinfo.getAge());
        }
        DbUtils.closeQuietly(con);

    }
  •   結果

 ^_^


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM