common-dbutils.jar是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。

1、QueryRunner类

①update方法:

  • int update(String sql,Object...params) -->可执行增删改语句
  • int update(Connection con,String sql,Object...params)-->需要调用者提供Connection,这说明本方法不再管理Connection。支持事务。

②query方法:

  • T query(String sql,ResultSetHandler rsh,Object...params)-->可执行查询

    • 它会先得到ResultSet,然后调用rsh的handle()把rs转换成需要的类型。
  • T query(Connection con,String sql,ResultSetHandler rsh,Object...params);支持事务。

2、ResultSetHandler接口:

  • BeanHandler(单行)-->构造器需要一个Class类型参数,用来把一行结果转换成指定类型的javabean对象。
  • BeanListHandler(多行)-->构造器也是需要一个Class类型的参数,用来把一行结果集转换成一个javabean,那么多行就是转换成List对象,一堆javabean
  • MapHandler(单行)-->把一行结果集转换成Map对象
    • 一行记录:
    • sid     sname   age   gender
    • 1001     zs         99     male
    • 一个Map:
    • {sid:1001, sname:zs, age:99, gender:male}
  • MapListHandler(多行) -->把一行记录转换成一个Map,多行就是多个Map,即List<Map>.
  • ScalarHandler(单行单列) -->通常用与“SELECT COUNT(*) FROM t_stu;”语句,结果集是单行单列的,它返回一个Object。

3、示例:

 1 import cn.itcast.jdbc.JdbcUtils;
2 import org.apache.commons.dbutils.QueryRunner;
3 import org.apache.commons.dbutils.handlers.*;
4 import org.junit.Test;
5 import java.sql.SQLException;
6 import java.util.List;
7 import java.util.Map;
8
9 public class Demo3 {
10 @Test
11 public void fun1() throws SQLException {
12 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());
13 String sql = "INSERT INTO t_stu VALUES(?,?,?,?)";
14 Object[] params = {1002,"lisi",99,"female"};
15 qr.update(sql,params);
16 }
17 @Test
18 public void fun2() throws SQLException {
19 //创建QueryRunner,提供数据库连接池对象
20 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());
21 //给出sql模板
22 String sql = "SELECT * FROM t_stu WHERE sid=?";
23 //给出参数
24 Object[] params = {1002};
25 //执行query()方法,需要给出集处理器,即 ResultSetHandler的实现类对象
26 //我们需要给的是BeanHandler,它实现了ResultSetHandler
27 //它需要一个类型,然后它会把rs中的数据封装到指定类型的javabean对象中,然后返回javabean对象
28 Stu stu = qr.query(sql,new BeanHandler<Stu>(Stu.class),params);
29 System.out.println(stu);
30 }
31 //BeanListHandler的应用,它是多行处理器
32 //每行对象一个Stu对象
33 @Test
34 public void fun3() throws Exception{
35 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());
36 String sql = "SELECT * FROM t_stu";
37 List<Stu> stuList = qr.query(sql,new BeanListHandler<Stu>(Stu.class));
38 System.out.println(stuList);
39 }
40
41 //MapHandler的应用,它是单行处理器,把一行转换成一个Map对象
42 @Test
43 public void fun4() throws Exception{
44 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());
45 String sql = "SELECT * FROM t_stu WHERE sid=?";
46 Object[] params = {1001};
47 Map map = qr.query(sql,new MapHandler(),params);
48 System.out.println(map);
49 }
50
51 //MapListHandler,它是多行处理器,把每行都转换成一个Map,即List<Map>
52 @Test
53 public void fun5() throws Exception{
54 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());
55 String sql = "SELECT * FROM t_stu ";
56 List<Map<String,Object>> mapList = qr.query(sql,new MapListHandler());
57 System.out.println(mapList);
58 }@Test
59 //ScalarHandler,它是单行单列时使用,最为合适。
60 public void fun6() throws Exception{
61 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());
62 String sql = "SELECT COUNT(*) FROM t_stu ";
63 Number cnt = (Number) qr.query(sql,new ScalarHandler());
64 long c = cnt.longValue();
65 System.out.println(c);
66 }
67 }
 1 import com.mchange.v2.c3p0.ComboPooledDataSource;
2 import java.sql.Connection;
3 import java.sql.SQLException;
4
5 public class JdbcUtils {
6 //配置文件的默认配置,要求你必须给出从c3p0-config.xml
7 private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
8 //使用连接池返回一个连接对象
9 public static Connection getConnection() throws SQLException {
10 return dataSource.getConnection();
11 }
12 //返回连接池对象
13 public static ComboPooledDataSource getDataSource() {
14 return dataSource;
15 }
16 }

DBUtils结果集处理器介绍的更多相关文章

  1. SharePoint网站集功能介绍

    SharePoint网站集功能介绍 https://support.office.com/zh-cn/article/%E5%90%AF%E7%94%A8%E6%88%96%E7%A6%81%E7%9 ...

  2. 集群介绍 keepalived介绍 用keepalived配置高可用集群

    集群介绍 • 根据功能划分为两大类:高可用和负载均衡 • 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 • 实现高可用的开源软件有:heartb ...

  3. nginx 集群介绍

    nginx 集群介绍 完成一次请求的步骤 1)用户发起请求 2)服务器接受请求 3)服务器处理请求(压力最大) 4)服务器响应请求 缺点:单点故障 单台服务器资源有限 单台服务器处理耗时长 ·1)部署 ...

  4. Linux集群介绍、keepalived介绍及配置高可用集群

    7月3日任务 18.1 集群介绍18.2 keepalived介绍18.3/18.4/18.5 用keepalived配置高可用集群扩展heartbeat和keepalived比较http://blo ...

  5. 负载均衡集群介绍、LVS介绍、LVS调度算法、LVS NAT模式搭建

    7月4日任务 18.6 负载均衡集群介绍18.7 LVS介绍18.8 LVS调度算法18.9/18.10 LVS NAT模式搭建 扩展lvs 三种模式详解 http://www.it165.net/a ...

  6. Jmeter元件——JSON Extractor后置处理器介绍2

    在前段时间将JSON Extractor元件做了个简单的介绍:Jmeter元件——JSON Extractor后置处理器介绍1,今天以一个具体的json,以不同的方式提取数据做个详细的介绍. 一.模拟 ...

  7. Linux centosVMware 负载均衡集群介绍、LVS介绍、LVS调度算法、LVS NAT模式搭建

    一.负载均衡集群介绍 主流开源软件LVS.keepalived.haproxy.nginx等 其中LVS属于4层(网络OSI 7层模型),nginx属于7层,haproxy既可以认为是4层,也可以当做 ...

  8. Linux centosVMware 集群介绍、keepalived介绍、用keepalived配置高可用集群

    一.集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat. ...

  9. QueryRunner(DBUtils) 结果集实例

    转自:http://www.cnblogs.com/myit/p/4272824.html#   单行数据处理:ScalarHandler    ArrayHandler    MapHandler  ...

随机推荐

  1. Tensorflow入门----占位符、常量和Session

    安装好TensorFlow之后,开一个python环境,就可以开始运行和使用TensorFlow了. 先给一个实例, #先导入TensorFlow import tensorflow as tf he ...

  2. kafka补充

     

  3. python学习,day4:装饰器的使用示例

    ---恢复内容开始--- 装饰器:本质是函数,(装饰其他函数)就是为其他函数添加附加功能 装饰器有其独特的原则:1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 例子 import ...

  4. 牛客Wannafly挑战赛26E 蚂蚁开会(树链剖分+线段树)

    传送门 题面描述 一颗n个节点的树,m次操作,有点权(该节点蚂蚁个数)和边权(相邻节点的距离). 三种操作: 操作1:1 i x将节点i的点权修改为x.(1 <= i <= n; 1 &l ...

  5. The Annoying Bug

    log里看不出问题,直接客户端就disconnected. gdb 挂了也不会停住,继续跑得跟正常人似的 再连根本不正常的了. 硬件: a , 主板CPU更换过 b,USB3.0 软件: 无有更换,但 ...

  6. 利用scrapy-client发布爬虫的远程服务器

    一.环境准备 远程服务器必须装有scapyd,我们使用的机器必须有scrapy-client(我这里是windows),并确保这两者正常安装并启动. 二.客户端准备上传 首先进入到爬虫项目的根文件夹: ...

  7. maven工程下testng简单使用

    创建maven工程后,将Repository仓库中maven代码粘贴复制到pom.xml文件中,仓库地址:<!-- https://mvnrepository.com/artifact/org. ...

  8. 阅读The Java® Language Specification需要知道的术语

    Null Pointer Exception,简称NPE 在java中,static final修饰的是常量.根据编译器的不同行为,常量又可分为编译时常量和运行时常量. 举例说明吧 public st ...

  9. Linux下SSH工具 PAC Manager的安装

    PAC Manager, Linux下类似SecureCRT Xshell的SSH工具,该工具功能上相当的不错,完全可以代替SecureCRT Xshell的功能. PAC (Perl Auto Co ...

  10. mysql8安装配置备忘

    Mysql8安装配置 1. 初始化 进入mysql安装目录中的bin目录,在cmd中输入: mysqld --initialize --console 加上--console参数可以看到初始化之后的默 ...