1. package com.itheima.dbutil;
  2.  
  3. import java.util.List;
  4. import java.util.Map;
  5.  
  6. import org.apache.commons.dbutils.QueryRunner;
  7. import org.apache.commons.dbutils.handlers.ArrayHandler;
  8. import org.apache.commons.dbutils.handlers.ArrayListHandler;
  9. import org.apache.commons.dbutils.handlers.ColumnListHandler;
  10. import org.apache.commons.dbutils.handlers.KeyedHandler;
  11. import org.apache.commons.dbutils.handlers.MapHandler;
  12. import org.apache.commons.dbutils.handlers.MapListHandler;
  13. import org.apache.commons.dbutils.handlers.ScalarHandler;
  14. import org.junit.Test;
  15.  
  16. import com.itheima.util.DBCPUtil;
  17.  
  18. public class ResultSetHandlerDemo {
  19. private QueryRunner qr = new QueryRunner(DBCPUtil.getDataSource());
  20. //ArrayHandler:适合结果只有一条的情况。把第一条记录的每列的值封装到一个Object[]数组中
  21. @Test
  22. public void test1() throws Exception{
  23. Object[] objs = qr.query("select * from student", new ArrayHandler());
  24. for(Object obj:objs)
  25. System.out.println(obj);
  26. }
  27. //ArrayListHandler:适合结果有多条的情况。把每列的值封装到Object[]数组中,把Object[]放到List中
  28. @Test
  29. public void test2() throws Exception{
  30. List<Object[]> list = qr.query("select * from student", new ArrayListHandler());
  31. for(Object[] objs:list){
  32. System.out.println("----------------");
  33. for(Object obj:objs){
  34. System.out.println(obj);
  35. }
  36. }
  37. }
  38. //ColumnListHandler:适合取某列的值。把取到值封装到List中
  39. @Test
  40. public void test3() throws Exception{
  41. List<Object> list = qr.query("select * from student", new ColumnListHandler("name"));
  42. for(Object obj:list){
  43. System.out.println(obj);
  44. }
  45. }
  46. //KeyedHandler:查询多条记录。每条记录封装到一个Map中,key:字段名,value:字段值。再把Map作为value放到另外一个Map中,该Map的key为指定的列值作为key。
  47. @Test
  48. public void test4() throws Exception{
  49. Map<Object,Map<String,Object>> bmap = qr.query("select * from student", new KeyedHandler("id"));
  50. for(Map.Entry<Object,Map<String,Object>> bme:bmap.entrySet()){
  51. System.out.println("--------------------");
  52. for(Map.Entry<String, Object> lme:bme.getValue().entrySet()){
  53. System.out.println(lme.getKey()+"="+lme.getValue());
  54. }
  55. }
  56. }
  57. //MapHandler:适合一条结果。封装到一个Map中,key:字段名,value:字段值
  58. @Test
  59. public void test5() throws Exception{
  60. Map<String,Object> map = qr.query("select * from student", new MapHandler());
  61. for(Map.Entry<String, Object> lme:map.entrySet()){
  62. System.out.println(lme.getKey()+"="+lme.getValue());
  63. }
  64. }
  65. //MapListHandler:适合多条结果。把每条封装到一个Map中,key:字段名,value:字段值,在把Map封装到List中
  66. @Test
  67. public void test6() throws Exception{
  68. List<Map<String,Object>> list = qr.query("select * from student", new MapListHandler());
  69. for(Map<String,Object> map:list){
  70. System.out.println("--------------------");
  71. for(Map.Entry<String, Object> lme:map.entrySet()){
  72. System.out.println(lme.getKey()+"="+lme.getValue());
  73. }
  74. }
  75. }
  76. //ScalarHandler:适合取结果只有一行和一列的情况。
  77. @Test
  78. public void test7() throws Exception{
  79. Object obj = qr.query("select count(*) from student", new ScalarHandler(1));
  80. // System.out.println(obj.getClass().getName());
  81. Long l = (Long)obj;
  82. System.out.println(l.intValue());
  83. System.out.println(obj);
  84. }
  85. }

Apache DBUtils框架 结果处理器的更多相关文章

  1. JDBC 学习笔记(四)—— 自定义JDBC框架+Apache—DBUtils框架+事务管理+操作多表

    本文目录:       1.自定义JDBC框架 ——数据库元数据:DataBaseMetaData        2.自定义JDBC框架 ——数据库元数据:DataBaseMetaData       ...

  2. Apache—DBUtils框架简介

    转载自:http://blog.csdn.net/fengdongkun/article/details/8236216 Apache—DBUtils框架简介.DbUtils类.QueryRunner ...

  3. Apache—DBUtils框架

    1.所需要jar包 commons-collections-2.1.1.jarmchange-commons-java-0.2.11.jarmysql-connector-java-5.1.18-bi ...

  4. Apache——DBUtils框架ResultSetHandler接口使用

    参考链接:http://i.cnblogs.com/EditPosts.aspx?opt=1 简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDB ...

  5. pache—DBUtils框架简介、DbUtils类、QueryRunner类 、ResultSetHandler接口

    Apache—DBUtils框架简介.DbUtils类.QueryRunner类 .ResultSetHandler接口 commons-dbutils 是 Apache 组织提供的一个开源 JDBC ...

  6. javaweb学习总结(四十一)——Apache的DBUtils框架学习

    一.commons-dbutils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化 ...

  7. Apache的DBUtils框架学习(转)

    原文地址:http://www.cnblogs.com/xdp-gacl/p/4007225.html 一.commons-dbutils简介 commons-dbutils 是 Apache 组织提 ...

  8. Apache的DBUtils框架学习(转)

    一.commons-dbutils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化 ...

  9. 开源框架:Apache的DBUtils框架

    开源框架:Apache的DBUtils框架 Commons DbUtils 1.4 API 开源框架:DBUtils使用详解 Download Apache Commons DbUtils  官方文档

随机推荐

  1. python第二十九课——文件读写(写数据的操作)

    演示写数据的操作: 结论:往文件中写入数据,如果文件不存在,先创建文件,再写入内容 #1.打开文件 fw=open(r'd.txt','w',encoding='utf-8') #2.写数据操作 fw ...

  2. 死磕nginx系列--使用nginx做负载均衡

    使用nginx做负载均衡的两大模块: upstream 定义负载节点池. location 模块 进行URL匹配. proxy模块 发送请求给upstream定义的节点池. upstream模块解读 ...

  3. 关于JRebel启动tomcat访问上次工程的index.jsp

    检查了一下,原来我把上次配置文件包括JRebel配置文件一起复制过来,用JRebel启动时tomcat访问JRebel配置文件的目录下 这个是我上次文件的路径,把JRebel配置文件删除了,然后 di ...

  4. 【Git】删除某个全局配置项

    1.查看Git所有配置 git config --list 2.删除全局配置项 (1)终端执行命令: git config --global --unset user.name (2)编辑配置文件: ...

  5. Python2.7-shelve

    shelve模块,持久化对象数据,可以说是 pickle 模块的封装,用于把像字典一样的以键-值存储的数据持久化存储,像操作数据库.当我们写程序的时候如果不想用关系数据库那么重量级的东东去存储数据,不 ...

  6. Python2.7-tempfile

    tempfile 模块,生成临时文件夹或文件,所生成的文件(夹)的名字都是随机的,但可以指定前缀.后缀和路径,中间由6位随机字符组成.应用程序经常要保存一些临时的信息,这些信息不是特别重要,没有必要写 ...

  7. Java学习笔记--Java开发坏境搭建

    一.安装JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 根据自己系统选择 ...

  8. (三)Lua脚本语言入门(数组)

    又要找工作了,变的忧虑了,唯有学习才让内心变得踏实,今天玩了一下午的王者荣耀,正事都忘了...... 如果认为所谓的毅力是每分每秒的“艰苦忍耐”式的奋斗,那这是一种很不足的心理状态.毅力是一种习惯,毅 ...

  9. jqgrid 自定义添加行数据

    一般在设置了自定义按钮后,比如‘添加’按钮,点击添加需要添加一条数据在表格中. 通过jqgrid的方法 addRowData 插入一行数据. //添加一行数据 function addRow() { ...

  10. [Noi2017]整数 BZOJ4942

    分析: 30+暴力应该还是蛮水的,可以随便写写... 60+的就没那么容易了,但是应该挺裸的,往上架一颗线段树,查询连续1或0的长度,或者找到前缀中,第一个1或0,之后区间覆盖,单点查询,开bool, ...