数据加载中……
Apace源代码学习1-dbutil初学之一
   关于dbutil的介绍,可以参照http://commons.apache.org/dbutils/,具体我就不多少了。
   dbutil源代码中主要分为三个包,dbutils、dbutils.handlers、dbutils.wrappers。我学习的顺序也是一个包一个包来解决。
   今天看的主要是dbutils.wrappers(从简单的入手,呵呵)
   1.dbutils.wrappers包---一些包装方法
     1.1SqlNullCheckedResultSet类
     这个类的基本作用如下,检查对db的操作的返回结果是否是null,可以根据自己的需要对Null的情况设自己的预设值.
     这个类的设计思路:
  设置常见field的私有成员变量
  对每个field对应getNullField()和setNullField()方法
  同时设置一个HashMap<String, Method> nullMethods变量和一个静态方法区,这个方法主要用于将getNullField()和getField()相对应,key是“getField“          value是getNullField()。
     这个类实现了InvocationHandler接口(可以现看下动态代理),
     invoke()方法,获取结果对象result,并判断result是否是null,通过HashMap映射调用getNullField()方法。
     1.2StringTrimmedResultSet类
     这个类比上面的那个类要简单很多,就是将ResultSet方法中的getString()和getObject()方法(如果获取的是String类型)获取的值,去除首位的空格。
  2.dbutils包
    2.1DbUtils类
    这个类中大量使用重载,想了一会会名词,看了记忆力是越来越差阿。
    这个类是一系列JDBC的帮助类,主要是关闭方法和加载驱动。Connection/ResultSet/Statement。
    关闭方法分为三类:
一般的close()这种close()针对以上三个对象之一,先判断是是否为null,如果不为null的话则调用对象自身的close方法。
        closeQuietly()方法,该方法直接调用上面的close()方法,同时捕获异常。
        带有commit的close方法或closeQuietly方法,这种方法中加如了conn.commit(),也就是手动处理了事务。应该是预先调用了conn.setAutocommit(false);
    好了,今天就看到这了,希望最近公司不忙。力争下周看完它。。加油。
 ps:今晚看了一小部分,感觉有些代码写的很好,但是目前还不能从整体的去把握它,这个估计要全部看完之后才可以,到时候在回过头看一遍,那个时候应该能快很多,而且也应该理解更深刻。。good night..
体会更深刻。

posted on 2011-07-11 00:05 潘潘.eagle 阅读(295) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: