Commons DbUtils 源码阅读一

  想起读源码了!

  主要是出于这几个方面的考虑:

    1)提高自己的编码及代码阅读能力和水平;

    2)学习大师们写代码所用到的设计模式以及思路。

  选择阅读Dbutils主要有以下缘由:

    1)开源中国社区http://www.oschina.net/ ,站长红薯大哥数据的提取就是用的这个开源项目,并且省了很多映射,有较大的编码灵活性;

    2)项目不大,代码少,我能在短时间内看完。

  DbUtils主要是用来简化JDBC数据的各种操作 项目的使用范围以及如何使用我在这里就不说了,看看该项目所有代码的结构以及各类的说明:

org.apache.commons.dbutils

      |__DbUtils :JDBC辅助方法集合,提供了一系列的JDBC API的静态方法供用户使用,比如数据库驱动的加载、Connection、Statement等资源的释放等等,该类线程安全。

      |__QueryRunner :简化处理SQL查询以及与ResultSetHandler处理ResultSet

      |__ResultSetHandler<T> :它的实现类借助于RowProcesser实现类将java.sql.ResultSet转换成其它对象,以下为它的一些具体实现类

            |__org.apache.commons.dbutils.handlers

                        |__AbstractKeyedHandler<K,V>  

                              |__KeyedHandler 

                         |__AbstractListHandler<T>

                               |__ArrayListHandler

                               |__ColumnListHandler

                               |__MapListHandler

                         |__ArrayHandler

                         |__BeanHandler<T>

                         |__BeanListHandler<T>

                         |__MapHandler

                         |__ScalarHandler

      |__QueryLoader :加载指定Properties的SQL映射到内存中并以Map返回

      |__ProxyFactory :创建JDBC API接口的一些代理类,比如:java.sql.Connection、java.sql.Statement等等

java.util

      |_Iterator<Object[]>

         |_ResultSetIterator

      |__RowProcessor :定义了java.sql.ResultSet转变为其它对象的一些方法,在其实现类BasicRowProcessor中有具体的操作

            |__BasicRowProcessor              

      |__BeanProcessor :匹配java.sql.ResultSet的列表到bean的属性,相当于做一些Hibernate XML文件映射之类的工作!

java.lang.reflect

      |_InvocationHandler

         |_org.apache.commons.dbutils.wrappers:代理实例的调用处理程序 ,做一些空值数据的处理                        |__StringTrimmedResultSet

                  |__SqlNullCheckedResultSet         

   代码的结构算是理清楚了,下一步,对这个结构里的每一个内容和结构来进一步的查看,正式要开始罗,期待! 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值