QueryRunner 结果处理器
来源:互联网 发布:金蝶软件精斗云 编辑:程序博客网 时间:2024/05/29 15:38
package cn.itcast.dbutil;import java.sql.SQLException;import java.util.List;import java.util.Map;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.handlers.ArrayHandler;import org.apache.commons.dbutils.handlers.ArrayListHandler;import org.apache.commons.dbutils.handlers.BeanHandler;import org.apache.commons.dbutils.handlers.BeanListHandler;import org.apache.commons.dbutils.handlers.ColumnListHandler;import org.apache.commons.dbutils.handlers.KeyedHandler;import org.apache.commons.dbutils.handlers.MapHandler;import org.apache.commons.dbutils.handlers.MapListHandler;import org.apache.commons.dbutils.handlers.ScalarHandler;import org.junit.Test;import cn.itcast.domain.Account;import cn.itcast.util.DBCPUtil;//查询练习public class DbUtilDemo2 { private QueryRunner qr = new QueryRunner(DBCPUtil.getDataSource()); @Test//BeanHandler public void test1() throws SQLException{ Account a = qr.query("select * from account where id=?", new BeanHandler<Account>(Account.class), 1); System.out.println(a); } @Test//BeanListHandler public void test2() throws SQLException{ List<Account> list = qr.query("select * from account", new BeanListHandler<Account>(Account.class)); for(Account a:list) System.out.println(a); } @Test//ArrayHandler:把结果集中的第一行数据转成对象数组。只适合结果集有一条记录的情况 public void test3() throws SQLException{ //该数组中每个元素就是记录的每列的值 Object objs[] = qr.query("select * from account where id=?", new ArrayHandler(),1); for(Object o:objs) System.out.println(o); } @Test//ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。 public void test4() throws SQLException{ //该数组中每个元素就是记录的每列的值 List<Object[]> list = qr.query("select * from account", new ArrayListHandler()); for(Object[] objs:list){ System.out.println("-----------------"); for(Object o:objs) System.out.println(o); } } @Test//ColumnListHandler:将结果集中某一列的数据存放到List中 public void test5() throws SQLException{ List<Object> list = qr.query("select * from account", new ColumnListHandler("id")); for(Object o:list) System.out.println(o); } @Test//KeyedHandler(name):将结果集中的每一行数据都封装到一个Map<列名,列值>里,再把这些map再存到一个map里,其key为指定的key。 public void test6() throws SQLException{ Map<Object, Map<String,Object>> bmap= qr.query("select * from account", new KeyedHandler("id")); for(Map.Entry<Object, Map<String,Object>> bme:bmap.entrySet()){ System.out.println("-----------------"); Map<String,Object> lmap = bme.getValue(); for(Map.Entry<String,Object> lme:lmap.entrySet()){ System.out.println(lme.getKey()+"="+lme.getValue()); } } } @Test//MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。 public void test7() throws SQLException{ Map<String,Object> map= qr.query("select * from account where id=?", new MapHandler(),1); for(Map.Entry<String, Object> me:map.entrySet()){ System.out.println(me.getKey()+"="+me.getValue()); } } @Test//MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List public void test8() throws SQLException{ List<Map<String,Object>> list= qr.query("select * from account", new MapListHandler()); for(Map<String,Object> map:list){ System.out.println("-----------------"); for(Map.Entry<String, Object> me:map.entrySet()){ System.out.println(me.getKey()+"="+me.getValue()); } } } @Test//ScalarHandler 适合取一条一列的记录。比如记录总数 public void test9() throws SQLException{ Object obj = qr.query("select count(*) from account", new ScalarHandler(1)); System.out.println(obj.getClass().getName()); int num = ((Long)obj).intValue(); System.out.println(num); }}
1 0
- QueryRunner 结果处理器
- QueryRunner 结果处理器
- QueryRunner(DbUtils) 结果集实例
- QueryRunner
- QueryRunner
- QueryRunner
- queryRUNNER
- action的结果处理器
- QueryRunner工具类用法和8种结果集
- 解决:DButils QueryRunner count(*) JavaBean里封装的结果集 返回null 或者返回 0
- 【JavaWeb-11】DBUtils、QueryRunner的query/update/batch、ResultSetHandler的9个处理器、ThreadLocal管理conn进行事务处理的案例
- queryrunner用法
- QueryRunner类
- QueryRunner使用
- QueryRunner使用
- QueryRunner-2
- 读mybatis源码之十二:结果集处理器
- private QueryRunner qr=new QueryRunner();
- poj3414Pots(bfs模拟数组 回溯路径)
- 第四章Response和增删改查(1)
- iOS 关闭和开启闪光灯
- hdu 5828 Rikka with Sequence 【线段树+优化】
- Ionic调用摄像头拍照和选择图库照片功能的注意点
- QueryRunner 结果处理器
- Android-ViewPagerIndicator使用方法
- 机器学习中的相似性度量
- Android开发笔记之主题背景的修改(设置Theme.NoTitleBar后Activity背景变成黑色)
- Android-----借助MINA框架实现长连接、短连接以及断线重连
- 关于checkbox全选的问题
- 打印机 针式打印机 热敏打印机
- bzoj1085骑士精神 题解(IDA*入门题)
- NOJ 1042 区间最值