10.25JDBC之Apache-DBUtils实现CRUD操作
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);
    }
    It's a lonely road!!!
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号