标签:gen set pac 问题 返回 int common 类型 scalar
一、commons-dbutils.jar
commons-dbutils.jar是Apache Commons组件中的一员,它是对JDBC进行简单封装的开源工具类库。
二、commons-dbutils.jar之QueryRunner类和ResultSetHandler接口
(2)BeanListHandler:多行处理器,把结果集转换成List<Map<String,Object>>,构造器也是需要一个Class类型的参数,用来把一行结果集转换成一个javabean,那么多行就是转换成List对象,一堆javabean。
@Test
public void demo2() throws SQLException{
QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
String sql = "select * from t_user";
List
(3)MapHandler:单行处理器, 把一行结果集转换Map对象。
@Test
public void demo3() throws SQLException{
QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
String sql = "select * from t_user WHERE USERNAME=?";
Object[] params = {"cym"};
Map map = qr.query(sql, new MapHandler(),params);
System.out.println(map);
}
查询到的结果(单行):{password=cym, gender=男, age=20, username=cym}
(4)MapListHandler:多行处理器,把结果集转换成List<Map<String,Object>>。
@Test
public void demo4() throws SQLException{
QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
String sql = "select * from t_user";
List<Map<String,Object>> mapL = qr.query(sql, new MapListHandler());
System.out.println(mapL);
}
查询到的结果(多行):
[{password=cym, gender=男, age=20, username=cym},
{password=123, gender=男, age=20, username=张三},
{password=zs, gender=女, age=22, username=zs},
{password=ls, gender=男, age=23, username=ls}]
(5)ScalarHandler:单行单列,常与count()连用。
public void fun4() throws SQLException{
QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
String sql = "select count() from t_user";
Number number = (Number)qr.query(sql, new ScalarHandler());
int i = number.intValue();
System.out.println(i);
}
查询到的结果(单行单列):4。
这里需要注意的是:query查询出的类型需要进行Number的转换,不同版本的jar包返回的类型是有差异的,并且和oracle驱动包的返回类型也有差异(BigInteger),为了避免在以后更新驱动包后产生不必要的问题,我们需要进行一些操作,这些数值类型有共同的父类为Number,因此可以进行转换:
Number number = (Number)qr.query(sql, new ScalarHandler());
//根据需要转换成相应的类型
int i = number.intValue();
commons-dbutils学习——QueryRunner类和ResultSetHandler接口介绍
标签:gen set pac 问题 返回 int common 类型 scalar
原文地址:https://www.cnblogs.com/shengwangmei/p/9328446.html