cuiyi's blog(崔毅 crazycy)

          記錄點滴 鑒往事之得失 以資于發展
          數據加載中……

          容器,Connection,事務,DAO模式(側重JDBC分析)

          DAO(Data Access Object)模式可以看成是Data Accessor模式 與 Active Domain Object模式;前者實現了數據訪問和業務邏輯的分離,后者實現了業務數據的對象化封裝。結合在一起即是對數據訪問的封裝。

          ? DAO模式往往用于數據庫的JDBC操作中,最主要的應該就是事務。JDBC 事務是用 Connection 對象控制的,默認的事務模式是事務自動提交,如果采用“手工”管理,需要把Connection對象的自動提交功能設置為false,即conn.setAutoCommit(false),在提交時使用conn.commit();才正式提交事務。

          ???DAO的職責:每個類對一個數據表進行維護,即增/刪/改只針對一個表,查可以連接多個表并返回業務對象(Business Object)。

          ???問題就出現在DAO既然只是針對一個數據表進行維護的,但在一個業務邏輯操作中,業務對象可能需要好幾個DAO來共同服務。

          ???一個較好的原則就是一個業務對象的一次具體操作最好能在一個事務中完成。拋開應用服務器提供的可能的JTA不談,不妨把Connection的獲得放到業務對象的方法中,在每個DAO的方法中增加Connection作為參數;在業務對方的方法體最后關閉這個連接。這樣,就形式上與多個SQL語句組合在一個事務中有相同的效果。

          ???另外,對于一些業務對象,其并不涉及多個DAO操作,是否還需要這樣來做呢?當然這樣做也無可厚非,但不妨在DAO的方法中同時提供有Connection和無Connection參數的兩種方法;這樣就比較容易處理了。

          ???雖然JTA及其容器的事務聲明方式更簡單,但是如果在沒有提供JTA功能的容器比如Tomcat下運行,這樣也不失為一種解決辦法.

          ???寫完了,在封裝一些方法時,突然想起來了,如果對連接用的是連接池,Connection創建、關閉好像沒有什么問題哦,也就不用上面的方式了。

          ??? 附:如果不當之處,請跟貼討論,拒絕過于偏激的言論。

          posted on 2006-05-10 22:28 crazycy 閱讀(1607) 評論(5)  編輯  收藏 所屬分類: JavaEE技術

          評論

          # re: 容器,Connection,事務,DAO模式(側重JDBC分析)  回復  更多評論   

          如果想透徹的理解關于dao的事務,
          spring提供很很磅
          2006-05-10 23:17 | 原創專欄 開源學習

          # re: 容器,Connection,事務,DAO模式(側重JDBC分析)  回復  更多評論   

          給個代碼實例具體分析!
          2006-05-12 10:10 | 紅旗的聯系

          # re: 容器,Connection,事務,DAO模式(側重JDBC分析)  回復  更多評論   

          [url=http://www.htsb.com.cn]風機消音器[/url][url=http://www.htsb.com.cn]風機消聲器[/url][url=http://www.ntpmmc.obm.cn]磨床[/url][url=http://www.ntpmmc.obm.cn]平面磨床[/url][url=http://www.fjxsq.obm.cn]風機消聲器[/url][url=http://www.fjxsq.obm.cn]風機消音器[/url][url=http://www.chinacomposites.com.cn]玻璃鋼格柵[/url][url=http://www.chinacomposites.com.cn]格柵[/url]
          2006-11-07 20:33 | r43r

          # re: 容器,Connection,事務,DAO模式(側重JDBC分析)  回復  更多評論   

          不錯!不錯!
          [url=http://www.jinwangtape.com]透明膠帶[/url][url=http://www.jinwangtape.com]膠帶[/url][url=http://www.ntpmmc.obm.cn]磨床[/url][url=http://www.htsb.com.cn]風機消聲器[/url][url=http://www.htsb.com.cn]風機消音器[/url][url=http://ntscjx.zj.com]離心通風機[/url][url=http://www.cdhhj.obm.cn]過濾器[/url][url=http://www.ccfj.obm.cn]除塵風機[/url][url=http://www.adhesivetape.obm.cn]膠帶[/url][url=http://www.cdhhj.obm.cn]消聲器[/url][url=http://www.ntnhj.obm.cn]捏合機[/url][url=http://www.ntefj.obm.cn]離心通風機[/url][url=http://www.ntefj.obm.cn]鍋爐通風機[/url][url=http://www.chinacomposites.com.cn]玻璃鋼模具[/url][url=http://www.chinacomposites.com.cn]格柵[/url][url=http://www.qdhhj.obm.cn]混合器[/url][url=http://www.cdhhj.obm.cn]過濾器[/url][url=http://www.qdhhj.obm.cn]混合機[/url][url=http://www.fjxsq.obm.cn]風機消聲器[/url][url=http://www.fjxsq.obm.cn]風機消音器[/url][url=http://www.blggs.obm.cn]玻璃鋼格柵[/url][url=http://www.goepe.com/company/show.php?uid=zngfj]除塵風機[/url]
          2006-11-17 17:32 | r43r

          # re: 容器,Connection,事務,DAO模式(側重JDBC分析)  回復  更多評論   

          [url=http://www.zngfj.com]鼓風機[/url][url=http://www.ntznfj.obm.cn]鼓風機[/url][url=http://www.xingdafj.cn]離心風機[/url][url=http://www.ntjhxdjx.com]洗滌機械[/url][url=http://www.tzdfgl.obm.cn]蒸汽鍋爐[/url][url=http://www.tzdfgl.cn]蒸汽鍋爐[/url][url=http://www.tzdfgl.cn]燃油蒸汽鍋爐[/url][url=http://www.ntshop.cn]結晶器[/url][url=http://nthmg.go3.icpcn.com/]風機說明書[/url][url=http://www.bsdfj.com]涂裝風機[/url][url=http://www.bsdfj.com]離心風機[/url][url=http://gzjx.91.tc]磨毛機[/url]
          [url=http://www.zngfj.com]離心鼓風機[/url][url=http://www.chinacomposites.com.cn]格柵[/url][url=http://www.jinwangtape.com]膠帶[/url][url=http://nthmg.go3.icpcn.com/]風機說明書制作[/url]
          [url=http://www.tzdfgl.cn]燃煤蒸汽鍋爐[/url]
          2007-05-21 16:45 | jhgj
          主站蜘蛛池模板: 广汉市| 林西县| 惠安县| 乐陵市| 罗平县| 会泽县| 渭南市| 繁昌县| 中山市| 巫山县| 禄劝| 太湖县| 建宁县| 宁波市| 惠安县| 平阴县| 莱州市| 饶阳县| 诸城市| 潍坊市| 巴彦县| 腾冲县| 衡南县| 成安县| 庆元县| 津南区| 盐边县| 民和| 石狮市| 克拉玛依市| 葵青区| 全州县| 德令哈市| 嵩明县| 镇宁| 江西省| 河源市| 大关县| 梁河县| 九龙城区| 肥西县|