java 结果集处理_Java使用apache的开源数据处理框架commons-dbutils完成查询结果集的各种处理输出(8种方式)...

packagedemo;/** QueryRunner数据查询操作;

* 调用QueryRunner类方法query(Connection con,String sql,ResultSetHandler r,Oberct...params))

* ResultSetHandler r 结果集的处理方式,传递ResultSetHandler接口实现类

* Object...params SQL语句中的?占位符

*

* 注意:query方法返回值,返回的是T 泛型,具体返回值类型,跟随结果集处理方式变化*/

importjava.util.List;importjava.util.Map;importjava.sql.Connection;importjava.sql.SQLException;importorg.apache.commons.dbutils.QueryRunner;importorg.apache.commons.dbutils.handlers.ArrayHandler;importorg.apache.commons.dbutils.handlers.ArrayListHandler;importorg.apache.commons.dbutils.handlers.BeanHandler;importorg.apache.commons.dbutils.handlers.BeanListHandler;importorg.apache.commons.dbutils.handlers.ColumnListHandler;importorg.apache.commons.dbutils.handlers.MapHandler;importorg.apache.commons.dbutils.handlers.MapListHandler;importorg.apache.commons.dbutils.handlers.ScalarHandler;importdomain.Sort;importjdbcutil.JDBCUtilsConfig;public classQueryRunnerDemo1{private static Connection con=JDBCUtilsConfig.getConnection();public static void main(String[] args) throwsSQLException {//arrayHandler();//arrayListHandler();//beanHandler();//beanListHandler()//columnListHandler();//scalarHandler();//mapHandler();

mapListHandler();

}/*** 结果集第八种处理方法,MapListHandler

* 将结果集每一行存储到Map集合,键:列明,值:数据

* Map集合过多,存储到List集合

*@throwsSQLException*/

public static void mapListHandler() throwsSQLException{

QueryRunner qr=newQueryRunner();

String sql="select * from sort";//调用方法query,传递结果集实现类MapListHandler

List> list=qr.query(con, sql,newMapListHandler());//遍历集合List

for(Mapmap:list){for(String key:map.keySet()){

System.out.print(key+"....."+map.get(key)+"\t");

}

System.out.println();

}

}/*** 结果集的第七种处理方法,MapHandler

* 将结果集第一行数据,封装到Map集合中

* Map 键:列名 值:这列的数据

*@throwsSQLException*/

public static void mapHandler() throwsSQLException{

QueryRunner qr=newQueryRunner();

String sql="select * from sort";//调用方法query,传递结果集实现类MapHandler//返回值:Map集合,Map接口实现类,泛型

Map map=qr.query(con, sql,newMapHandler());for(String key:map.keySet()){

System.out.println(key+"....."+map.get(key));

}

}/*** 结果集第六种处理方法,ScalarHandler

* 对于查询后,只有1个结果

*@throwsSQLException*/

public static void scalarHandler() throwsSQLException{

QueryRunner qr=newQueryRunner();

String sql="select count(*) from sort";//调用方法query,传递结果集处理实现类scalarHandler

Long count=qr.query(con, sql,new ScalarHandler());

System.out.println(count);

}/*** 结果集第五种处理方法,ColumnListHandler

* 结果集,指定列的数据,存储到List集合

* List 每个列数据类型不同

*@throwsSQLException*/

public static void columnListHandler() throwsSQLException{

QueryRunner qr=newQueryRunner();

String sql="select * from sort";//调用方法query,传递结果集实现类//实现类构造方法中,使用字符串的列名

List list=qr.query(con, sql,new ColumnListHandler("sname"));for(Object obj:list){

System.out.println(obj);

}

}/*** 结果集第四种处理方法,BeanListHandler

* 将数据结果集的每一行数据,封装成javaBean对象

* 多个JavaBean对象封装到List集合中

*@throwsSQLException

**/

public static void beanListHandler() throwsSQLException{

QueryRunner qr=newQueryRunner();

String sql="select * from sort";//调用方法传递结果集的实现类 BeanListHandler

List result=qr.query(con, sql,new BeanListHandler(Sort.class));for(Sort r:result){

System.out.println(r);

}

}/*** 结果集的第三种处理方法,BeanHandler

* 将结果集的第一行的数据,封装成JavaBean对象 *

* 注意:被封装成数据到JavaBean对象,Sort类必须有空参数构造*/

public static void beanHandler() throwsSQLException{

QueryRunner qr=newQueryRunner();

String sql="select * from sort where sid=20";//调用方法,传递结果集实现类BeanHandler//BeanHandler(Class type)

Sort s=qr.query(con,sql, new BeanHandler(Sort.class));

System.out.println(s);

}/*** 结果集第二种处理方法,ArrayListHandler

* 将结果集的每一行,封装到对象数组中,出现很多对象数据

* 对象数组存储到List集合

*@throwsSQLException

**/

public static void arrayListHandler() throwsSQLException{

QueryRunner qr=newQueryRunner();

String sql="select * from sort where sid>10";//调用query方法,结果集处理的参数上,传递实现类ArrayListHandler//方法返回值 每行是一个对象数据,存储到List

List result =qr.query(con, sql,newArrayListHandler());//集合的遍历

for(Object[] objs:result){for(Object obj:objs){

System.out.print(obj+"\t");

}

System.out.println();

}

}/*** 结果集第一种处理方法,ArrayHandler

* 将结果集的第一行存储到对象数组中 Object[]

*@throwsSQLException*/

public static void arrayHandler() throwsSQLException{

QueryRunner qr=newQueryRunner();

String sql="select * from sort where sid=10";//调用方法query执行查询,传递连接对象,SQL语句,结果集处理方式实现类//返回对象数组

Object[] result=qr.query(con,sql,newArrayHandler());

System.out.println(result.length);for(Object obj:result){

System.out.print(obj+"\t");

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值