【源码阅读】Apache Commons DbUtils 阅读第一天

最近有幸用到apache Commons    下的DbUtils组件,进而研究了一下其源码,现把阅读过程中的一些感想记录下来,以供参考!!!


一:介绍

Commons Dbutils 是一个操作数据库的组件,原则上这不能说是一个持久层框架,它提供了一些Jdbc的操作封装来简化数据查询和记录读取操作。如果大家需要其源码的话,可以通过以下地址下载:http://commons.apache.org/dbutils/index.html


二:代码结构

Commons Dbutils 主要包括3个package:

org.apache.commons.dbutils   //JDBC 辅助方法集合,提供了一系列的 JDBC API 的静态方法供用户使用,比如数据库驱动的加载、

                                                               Connection、Statement 等资源的释放等等,该类线程安全。

org.apache.commons.dbutils.handlers   //  主要包括把resultset对象里数据转换成其他object类,如map、bean、list等

org.apache.commons.dbutils.wrappers  //主要包括代理实例的调用处理程序,做一些空值数据的处理

我们来看看项目里面的结构以及具体说明

org.apache.commons.dbutils 包

|__DbUtils:jdbc辅助方法集合,线程安全

|__ResultSetHandler<T>:转换ResultSets对象 为其他Object 接口,下面为它的一些具体实现类

    |__org.apache.commons.dbutils.handlers包
            |__AbstractKeyedHandler<K,V>:把ResultSet里面数据转换为Map存储,抽象类

                  |__BeanMapHandler:map里面value保存的是一个bean类,根据相应key获取bean数据

                 |__KeyedHandler;ResultSetHandler h = new KeyedHandler("id"); 根据类中保存的key(id),获取相应value

            |__AbstractListHandler<T>把ResultSet里面数据转换为List存储,抽象类

                  |__ArrayListHandler:list为arrayList

                 |__ColumnListHandler:

                       |__MapListHandler:

            |__ArrayHandler:把ResultSet里面数据转换为Object[]存储

            |__BeanHandler<T>:把ResultSet里面数据转换为javaBean存储

            |__BeanListHandler<T>:把ResultSet里面数据转换为用List存储,list里面对象为javaBean

            |__MapHandler:把ResultSet里面数据转换为Map存储

            |__ScalarHandler:

|__AbstractQueryRunner

     |__QueryRunner  :基本查询类

     |__AsyncQueryRunner

|__RowProcessor

     |__BasicRowProcessor

|__BeanProcessor

|__ProxyFactory:代理类

|__QueryLoader

|__ResultSetIterator

org.apache.commons.dbutils.wrappers

|__SqlNullCheckedResultSet

|__StringTrimmedResultSet


代码的结构终于初步弄清楚了,下次将进一步的解读里面的代码!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值