通过使用queryRunner的查询方法,我们知道其使用了回调机制。
下面就对其中的参数ResultSetHandler
的实现类进行不同的查询。
ResultSetHandler
接口用于处理 java.sql.ResultSet,将数据按要求转换为另一种形式。
ResultSetHandler 接口提供了一个单独的方法:Object handle (java.sql.ResultSet .rs)
1.ArrayHandler
把结果集中的第一行数据转成对象数组
eg:
<span style="white-space:pre"> </span>//ArrayHandler:把结果集中的第一行数据转成对象数组。
@Test
public void test1() throws SQLException{
QueryRunner runner = new QueryRunner(new ComboPooledDataSource());
Object[] objs = runner.query("select * from account where money>?", new ArrayHandler(),500);
System.out.println(objs);
}
2.ArrayListHandler
把结果集中的每一行数据都转成一个对象数组,再存放到List中
<span style="white-space:pre"> </span>//ArrayListHandler:把结果集中的每一行数据都转成一个对象数组,再存放到List中。
@Test
public void tes2() throws SQLException{
QueryRunner runner = new QueryRunner(new ComboPooledDataSource());
List<Object[]> list = runner.query("select * from account where money>?", new ArrayListHandler(),500);
System.out.println(list);
}
3.BeanHandler
将结果集中的第一行数据封装到一个对应的JavaBean实例中
<span style="white-space:pre"> </span>//BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
@Test
public void tes3() throws SQLException{
QueryRunner runner = new QueryRunner(new ComboPooledDataSource());
Account acc = runner.query("select * from account where money>?", new BeanHandler<Account>(Account.class),500);
System.out.println(acc);
}
4.BeanListHandler
将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里
<span style="white-space:pre"> </span>//BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。
@Test
public void tes4() throws SQLException{
QueryRunner runner = new QueryRunner(new ComboPooledDataSource());
List<Account>list = runner.query("select * from account where money>?", new BeanListHandler<Account>(Account.class),500);
System.out.println(list);
}
5.MapHandler
将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值
<span style="white-space:pre"> </span>//MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。
@Test
public void tes5() throws SQLException{
QueryRunner runner = new QueryRunner(new ComboPooledDataSource());
Map<String, Object> map = runner.query("select * from account where money>?", new MapHandler(),500);
System.out.println(map);
}
6.MapListHandler
将结果集中的每一行数据都封装到一个Map里,然后再存放到List
<span style="white-space:pre"> </span>//MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List
@Test
public void tes6() throws SQLException{
QueryRunner runner = new QueryRunner(new ComboPooledDataSource());
List<Map<String, Object>> list = runner.query("select * from account where money>?", new MapListHandler(),500);
System.out.println(list);
}
7.ColumnListHandler
将结果集中某一列的数据存放到List中
<span style="white-space:pre"> </span>//ColumnListHandler:将结果集中某一列的数据存放到List中。
@Test
public void tes7() throws SQLException{
QueryRunner runner = new QueryRunner(new ComboPooledDataSource());
List<Object>list = runner.query("select * from account where money>?", new ColumnListHandler(3),500);
System.out.println(list);
}
8.KeyedHandler(name)
将结果集中的每一行数据都封装到一个Map里(List<Map>),再把这些map再存到一个map里,其key为指定的列
<span style="white-space:pre"> </span>//KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里(List<Map>),再把这些map再存到一个map里,其key为指定的列。
@Test
public void tes8() throws SQLException{
QueryRunner runner = new QueryRunner(new ComboPooledDataSource());
Map<Object, Map<String, Object>> map = runner.query("select * from account where money>?", new KeyedHandler("id"),500);
System.out.println(map);
}
9.ScalarHandler
获取结果集中第一行数据指定列的值,常用来进行单值查询
<span style="white-space:pre"> </span>//ScalarHandler:获取结果集中第一行数据指定列的值,常用来进行单值查询
@Test
public void tes9() throws SQLException{
QueryRunner runner = new QueryRunner(new ComboPooledDataSource());
Long count = (Long)runner.query("select count(*) from account",new ScalarHandler());
System.out.println(count);
}
分享到:
相关推荐
DBUtils框架ResultSetHandler接口使用
commons-dbutils 是 Apache 组织提供的一个...主要讲解两个类(org.apache.commons.dbutils.DbUtils 和org.apache.commons.dbutils.QueryRunner)和一个接口(org.apache.commons.dbutils.ResultSethandler)。 ......
commons-dbutils
dbutils dbutils dbutils dbutils
将常用的操作数据库的JDBC的类和方法集合在 一起,就是DBUtils.ResultSetHandler,此接口 用于处理数据库查询操作 得到的结果集。不同的结 果集的情形,由其不同的 子类来实现 QueryRunner,提供数据库操 作的一系列...
参数中加上ResultSetHandler接口的实现类参数(下面这些实现类),执行完SQL后,返回的数据就是已经封装好的我们想要的结果了。 ArrayHandler :将ResultSet中第一行的数据转化成对象数组 ArrayListHandler将...
BasicRowProcessor RowProcessor接口的基本实现类. BeanProcessor BeanProcessor匹配列明到Bean属性名,并转换结果集列到Bean对象的属性中. DbUtils 一个JDBC辅助工具集合. ProxyFactory 产生JDBC接口的代理实现. ...
DBUtils 工具类
DBUtils(通用的数据库工具类)DBUtils(通用的数据库工具类)
dbutils工具类的使用
DBUtils 是一套允许线程化 Python 程序可以安全和有效的访问数据库的模块。DBUtils已经作为 Webware for Python 一部分用来结合 PyGreSQL 访问 PostgreSQL 数据库,当然他也可以用在其他Python应用程序中来访问 DB-...
自己写的一个登录功能,利用dbutils(c3p0连接池)实现登录,每个都有注释,亲测可用
DBUtils模拟用泛型实现,个人感觉比dbutils好用,不用类型转换。支持自定义结果集。
JavaWeb之DBUtils-QueryRunner类对数据表的操作
python dbutils 简单封装
3.BeanListHandlerExample.java,演示BeanListHandler如何使用,BeanListHandler实现类将结果集转换成指定对象类型的集合。 4.InsertUpdateExample.java,演示如何执行添加和更新。 5.ResultSetHandlerExample.java,...
JDBC学习(九)dbUtils原理代码实例,包含三个demo:正常C3P0数据库池对数据库的增删改查操作;自己实现dbutils对数据库实现增删改查操作;使用apache的工具类dbutils对数据库增删改查操作。
赠送jar包:commons-dbutils-1.7.jar; 赠送原API文档:commons-dbutils-1.7-javadoc.jar; 赠送源代码:commons-dbutils-1.7-sources.jar; 赠送Maven依赖信息文件:commons-dbutils-1.7.pom; 包含翻译后的API文档...
commons-dbutils.jar jdbc工具类jar包 1.3、1.6、1.7三个版本
模仿DBUtils(自己模仿Commons DBUtils写的简易DBUtils),欢迎大家下载学习,这不是Apache旗下的DBUtils哦~