学科分类
目录
Java Web

KeyedHandler

在使用DBUtils工具操作数据库时,KeyedHandler类用于将结果集中的每一行数据都封装到一个Map里,然后再根据指定的key把每个Map再存放到一个Map里,接下来通过一个案例演示KeyedHandler类的使用方法,如例1所示。

例1 ResultSetTest9.java

 1  package cn.itcast.jdbc.example.dao;

 2  import java.sql.SQLException;

 3  import java.util.Map;

 4  import javax.sql.DataSource;

 5  import org.apache.commons.dbutils.QueryRunner;

 6  import org.apache.commons.dbutils.handlers.KeyedHandler;

 7  import com.mchange.v2.c3p0.ComboPooledDataSource;

 8  

 9  public class ResultSetTest9 {

 10   public static DataSource ds = null;

 11     // 初始化C3P0数据源

 12     static {

 13     // 使用c3p0-config.xml配置文件中的named-config节点中name属性的值

 14         ComboPooledDataSource cpds = new ComboPooledDataSource();

 15       ds = cpds;

 16   }

 17   public static void testKeyedHandler() throws SQLException {

 18     String sql = "select id, name, password from user";

 19     QueryRunner qr = new QueryRunner(ds);

 20     Map<Object, Map<String, Object>> map = qr.query(

 21         sql, new KeyedHandler<Object>("id")); 

 22     Map uMap = (Map) map.get( new Integer(1));

 23     String uName = (String) uMap.get("name") ;

 24     String uPassword = (String) uMap.get("password");

 25     System.out.println(uName+":"+uPassword);

 26   }

 27   public static void main(String[] args) throws SQLException {

 28     testKeyedHandler();

 29   }

 30 }

运行ResultSetTest9类,输出结果如图1所示。

图1 运行结果

在例1中,KeyedHandler类将结果集中的每一行数据都封装到一个Map里,然后再根据指定的key(id)把每个Map再存放到一个Map里。从运行结果可以看出,KeyedHandler类成功的输出结果集中一行数据的name和password字段的值。

点击此处
隐藏目录