數據加載中……
          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 閱讀(313) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 买车| 伊吾县| 志丹县| 香格里拉县| 阿瓦提县| 漳州市| 白沙| 通河县| 韶山市| 雷州市| 荔浦县| 福贡县| 巨鹿县| 北辰区| 印江| 大埔区| 宁强县| 子洲县| 台山市| 遵义市| 宁津县| 永新县| 高尔夫| 桐梓县| 亳州市| 呼玛县| 黎平县| 浦东新区| 榆中县| 吉安市| 镇康县| 托克托县| 潮州市| 卢龙县| 福州市| 綦江县| 嘉黎县| 仁怀市| 盈江县| 吉木乃县| 临城县|