| 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:
- 存儲信息的類需要滿足以下條件
- 需要實現接口:java.io.Serializable ,通常實現接口這步驟省略了,不會影響程序;
-
提供私有字段:private 類型 字段名;
- 提供getter/setter方法;
-
提供無參構造。
存儲信息的類(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);
}
- 結果

^_^
