日期:2014-05-16 浏览次数:20643 次
? 想起读源码了!
??主要是出于这几个方面的考虑:
??? 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?????????
???代码的结构算是理清楚了,下一步,对这个结构里的每一个内容和结构来进一步的查看,正式要开始罗,期待!?
?