DbUtils(一)

转自http://www.cnblogs.com/myit/p/4269165.html

我感觉Dbutils用的最多的就是对查询结果集的处理,就以这个开始了解Dbutils库。

查看源代码发现结果集的转换主要用于query,insert,insertBatch方法。

// 仅仅列出QueryRunner类的相关代码,其他略过
//-----------源码1 query方法 ------------------
    stmt = this.prepareStatement(conn, sql);
    this.fillStatement(stmt, params);
    rs = this.wrap(stmt.executeQuery());
    result = rsh.handle(rs); // 处理结果集

//-----------源码2 insert方法 ------------------
    stmt = conn.prepareStatement(sql, tatement.RETURN_GENERATED_KEYS);
    this.fillStatement(stmt, params);
    stmt.executeUpdate();
    ResultSet resultSet = stmt.getGeneratedKeys();
    generatedKeys = rsh.handle(resultSet); // 处理结果集

//-----------源码3 insertBatch方法 ------------------
    ResultSet rs = stmt.getGeneratedKeys();
    generatedKeys = rsh.handle(rs); // 处理结果集

对ResultSet的转换主要围绕两个接口展开(ResultSetHandler<T> RowProcessor)。

1、ResultSetHandler<T> ,关系图如下:

接口 ResultSetHandler 只有一个需要实现的方法 handle(ResultSet rs),我的理解这个方法是处理结果集的一个入口,每个结果集转换类都在自己的 handle 方法中处理自己的事情,这个可从前面的源码1、2、3中看出来,都是调用实现类的handle方法,再返回结果。

ResultSetHandler  的实现类(结果集转换类)在 handle 方法中实现对结果集的处理,大部分会涉及到另一个接口 RowProcessor 及其实现类 BasicRowProcessor

2、RowProcessor,关系图如下:

RowProcessor 接口有4个需要实现的方法,具体用途可以很直观的从方法名中看出来。这几个方法都在结果转换类的 handle 方法中调用。需要注意如果需要将结果集转换为Bean,那么还会涉及到一个类 BeanProcessor 的使用。

3、ResultSetHandler 和 RowProcessor 的关系

      

      图虽然有点乱,凑合看也能看清楚。大部分的结果集都持有一个 RowProcessor 接口的引用。需要注意的是 ArrayHandler 这个类,因为其他类 RowProcessor 的引用都是从这个类获取的,这个类建立了 RowProcessor 实现类 BasicRowProcessor 的对象。

需要注意其中的3个抽象类(AbstractKeyedHandler、AbstractListHandler、BaseResultSetHandler),它们的派生类才是可以使用的结果转换类。根据文档的说明,如果官方提供的这些转换类都不能满足你的要求,可以通过继承 BaseResultSetHandler 实现自己的结果集转换类。

时间: 2024-08-04 18:22:00

DbUtils(一)的相关文章

java数据访问(2):DBUtils

导入包 <dependency> <groupId>commons-dbutils</groupId> <artifactId>commons-dbutils</artifactId> <version>1.5</version> </dependency> <!-- 导入Mysql数据库链接jar包 --> <dependency> <groupId>mysql</g

DbUtils常用API的使用 方便以后查阅

1 package com.lizhou.Test; 2 3 import java.sql.SQLException; 4 import java.util.List; 5 import java.util.Map; 6 import java.util.Map.Entry; 7 import java.util.Set; 8 9 import javax.sql.DataSource; 10 11 import org.apache.commons.dbutils.QueryRunner; 

DBUtils框架

主要知识点: 一.多表关联操作(DBUtils框架) 1.一对多关系 *** 2.多对多关系 *** 3.一对一关系 二.分页 三.监听器组件(web三大组件之一) 四.踢人综合示例(监听器实现) 一.分页核心类总结: 1.分页必要性 select * from account; 分页的结果就是要让指定的记录加载到内存 1.人的习惯 2.内存的限度(核心问题) 3.屏幕的限度 2.如何做分页? 1.数据库层面的考虑 select * from account limit startIndex,s

Apache的DBUtils框架学习

commons-dbutils简介 commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能.因此dbutils成为很多不喜欢hibernate的公司的首选. commons-dbutils API介绍: org.apache.commons.dbutils.QueryRunner QueryRunner中有update()和query()方法 org.a

Apache—DBUtils框架简介

转载自:http://blog.csdn.net/fengdongkun/article/details/8236216 Apache—DBUtils框架简介.DbUtils类.QueryRunner类 .ResultSetHandler接口 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能.因此dbutils成为很多不喜欢hibernat

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

一.commons-dbutils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能.因此dbutils成为很多不喜欢hibernate的公司的首选. commons-dbutilsAPI介绍: org.apache.commons.dbutils.QueryRunner org.apache.commons.dbutils.Resul

开源JDBC工具类DbUtils

本篇将会详细地介绍Apache公司的JDBC帮助工具类DbUtils以及如何使用.在上一篇中我们已经通过将以前对dao层使用JDBC操作数据库的冗余代码进行了简易封装形成自己的简单工具类JdbcUtils,而在这过程中很多都是借鉴和参考了DbUtils的代码,因此通过上一篇的学习,会让我们在对DbUtils进行更快速简单的认识. 俗话说学习一个开源的工具最好的方法就是看其官方文档,是的,在Apache官网中对DbUtils进行了详细的介绍:http://commons.apache.org/pr

Dbutils数据库增删改查

1 package com.example.day5_xutildemo; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import com.baidu.vo.Car; 7 import com.lidroid.xutils.DbUtils; 8 import com.lidroid.xutils.db.sqlite.Selector; 9 import com.lidroid.xutils.exception.DbE

开源工具DbUtils的使用(数据库的增删改查)

一.DbUtils简介: DBUtils是apache下的一个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果集封装成JavaBean,这就为我们做了最枯燥乏味.最容易出错的一大部分工作. 下载地址:http://commons.apache.org/proper/commons-dbutils/download_dbutils.cgi 下载上图中的红框部分,然后解压.解压之后的文件如下 : 上图中红框部分的文件就是我们所需要的内容. 二.核心方法: Db

DBUtils工具

DBUtils工具 简介 是Apache旗下的产品.是对jdbc的简单封装.提供出通用的jdbc操作方法.简化开发者使用jdbc的成本. 常用的API说明 |- QueryRunner类: 主要进行jdbc的增删改查操作. |-update(): 用于更新 |-query(): 用于查询 |- ResultSetHandler接口: 主要用于在查询操作中,封装结果集.ResultSet -> 对象 |-ArrayHandler类:把结果集的第一行记录封装成数组 |-ArrayListHandle