Dbutils笔记

ResultSetHandler的实现类有很多种,涉及数组、map 、javabean等,都接受一个RowProcessor类型的参数来实现结果集向对象的转化。其中RowProcessor的默认实现类为BasicRowProcessor, 用户也可以自己实现RowProcessor。 BasicRowProcessor使用BeanProcessor来完成resultset中的值向javabean的映射,前提要求列名和bean属性名必须一致。

ArrayHandler :将ResultSet中第一行的数据转化成对象数组
ArrayListHandler : 将ResultSet中所有的数据转化成List,List中存放的是Object[]
BeanHandler :将ResultSet中第一行的数据转化成类对象
BeanListHandler :将ResultSet中所有的数据转化成List,List中存放的是类对象
MapHandler :将ResultSet中第一行的数据存成Map映射
MapListHandler :将ResultSet中所有的数据存成List。List中存放的是Map
ColumnListHandler :将ResultSet中某一列的数据存成List,List中存放的是Object对象
KeyedHandler :将ResultSet中所有数据存成Map,Map中key为某一列的值,value为Map,存放key对应的行的数据
ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object

查询的基本用法:
        String url  =   " jdbc:mysql://localhost:3306/blog " ;
        String jdbcDriver 
=   " com.mysql.jdbc.Driver " ;
        String user 
=   " root " ;
        String password 
=   " root " ;
        DbUtils.loadDriver(jdbcDriver);
        Connection conn 
=   null ;
        
try  {
            conn 
=  DriverManager.getConnection(url, user, password);
            QueryRunner qr 
=   new  QueryRunner();
            List  results 
=  (List)qr.query(conn,  " select  *  from T_USER " new  BeanListHandler(User. class ) );
        } 
catch  (SQLException e) {
            e.printStackTrace();
        } 
finally  {
            DbUtils.closeQuietly(conn);
        }
该query方法执行后会自己关闭rs和stmt,但没有关闭连接。
如果传入dataSource, QueryRunner run = new QueryRunner( dataSource ),则执行不含conn参数的查询方法时,会自己关闭连接。
public   < T >  T query(String sql, ResultSetHandler < T >  rsh, Object params)
        
throws  SQLException {

        Connection conn 
=   this .prepareConnection();

        
try  {
            
return   this .query(conn, sql, rsh, params);
        } 
finally  {
            close(conn);
        }
    }


扩展ApacheCommos的DbUtils以支持字段名下划线映射
对 DBUtils 包中 BeanProcessor 的优化
修改DbUtils支持表名下划线映射
dbutils
Commons DbUtils 源码阅读四
让你的DBUtils支持enum
OSChina底层数据库操作的类(QueryHelper)源码
OSChina底层数据库操作的类(QueryHelper)源码2
基于JDBC+Oracle+Apache Dbutil的泛型DAO
日常数据库操作的烦恼及解药--DbUtils、MyBatis和Hibernate
基于dbutils支持annotation的简易orm

你可能感兴趣的:(Dbutils笔记)