Apache-DBUtils简介
什么是Apache-DBUtils?
commons-dbutils
是Apache
组织提供的一个开源的JDBC
工具类库
API
介绍
-
org.apache.commons.dbutils.QueryRunner
-
org.apache.commons.dbutils.ResultSetHandler
-
org.apache.commons.dbutils.DbUtils
工具类
使用方式
导入依赖
<!--dbutils依赖-->
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.7</version>
</dependency>
主要使用方法:
-
QueryRunner
类下封装的方法
插入一条数据:
返回单个结果的封装方法:
//测试查询操作,使用dbutils
/*
使用BeanHandler,是ResultSet接口的实现类。用于封装表中的一条记录
*/
使用List
封装返回的多个结果对象:
//测试查询,使用dbutils封装多条返回记录
/*
BeanListHandler,是一个DBUtils的实现类。用于封装多条记录的返回结果
*/
使用Map
封装返回的单个结果对象:
//返回一个Map
/*
MapHandler,封装返回的也是一条纪律
返回的对象是以一个map的方式来呈现
将字段与值作为map中的key和value
*/
使用MapList
封装返回的多个对象:
//MapListHandler
/*
以map德形式返回字段和值
返回多个结果集
*/
使用MapListHandler
对返回的多个结果集对象进行封装:
//MapListHandler
/*
以map德形式返回字段和值
返回多个结果集
每一条记录对应map中的key和value
*/
使用sql
的内置函数进行查询操作:
//使用sql函数进行查询操作返回封装的结果集
data
类型:
//使用sql函数进行查询data类型的操作
自定义DBUtils实现类进行查询操作
因为上诉的一些方法都是再Bean
类下实现的方法。这些类统一实现了接口:Interface ResultSetHandler<T>
这个泛型接口。
所以可以通过实现该接口的方式自定义查询的实现类和方法
具体实现类:
/*
自定义一个ResultSetHandler的实现类
*/
调用第三方工具类提供的关闭资源的方法
关闭资源:
/*调用第三方sdk提供的工具类下的方法实现资源的关闭*/
public static void closeResource2(Connection conn, PreparedStatement ps, ResultSet rs) {
try {
DbUtils.close(conn);
}catch (SQLException e) {
e.printStackTrace();
}
try {
DbUtils.close(ps);
}catch (SQLException e) {
e.printStackTrace();
}
try {
DbUtils.close(rs);
}catch (SQLException e) {
e.printStackTrace();
}
}
/*调用第三方sdk提供的工具类,方法中处理异常*/
public static void closeResource3(Connection conn, PreparedStatement ps, ResultSet rs) {
DbUtils.closeQuietly(conn);
DbUtils.closeQuietly(ps);
DbUtils.closeQuietly(rs);
}