cuiyi's blog(崔毅 crazycy)

          記錄點(diǎn)滴 鑒往事之得失 以資于發(fā)展
          數(shù)據(jù)加載中……

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

          DAO(Data Access Object)模式可以看成是Data Accessor模式 與 Active Domain Object模式;前者實(shí)現(xiàn)了數(shù)據(jù)訪問和業(yè)務(wù)邏輯的分離,后者實(shí)現(xiàn)了業(yè)務(wù)數(shù)據(jù)的對(duì)象化封裝。結(jié)合在一起即是對(duì)數(shù)據(jù)訪問的封裝。

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

          ???DAO的職責(zé):每個(gè)類對(duì)一個(gè)數(shù)據(jù)表進(jìn)行維護(hù),即增/刪/改只針對(duì)一個(gè)表,查可以連接多個(gè)表并返回業(yè)務(wù)對(duì)象(Business Object)。

          ???問題就出現(xiàn)在DAO既然只是針對(duì)一個(gè)數(shù)據(jù)表進(jìn)行維護(hù)的,但在一個(gè)業(yè)務(wù)邏輯操作中,業(yè)務(wù)對(duì)象可能需要好幾個(gè)DAO來共同服務(wù)。

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

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

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

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

          ??? 附:如果不當(dāng)之處,請(qǐng)跟貼討論,拒絕過于偏激的言論。

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

          評(píng)論

          # re: 容器,Connection,事務(wù),DAO模式(側(cè)重JDBC分析)  回復(fù)  更多評(píng)論   

          如果想透徹的理解關(guān)于dao的事務(wù),
          spring提供很很磅

          # re: 容器,Connection,事務(wù),DAO模式(側(cè)重JDBC分析)  回復(fù)  更多評(píng)論   

          給個(gè)代碼實(shí)例具體分析!
          2006-05-12 10:10 | 紅旗的聯(lián)系

          # re: 容器,Connection,事務(wù),DAO模式(側(cè)重JDBC分析)  回復(fù)  更多評(píng)論   

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

          # re: 容器,Connection,事務(wù),DAO模式(側(cè)重JDBC分析)  回復(fù)  更多評(píng)論   

          不錯(cuò)!不錯(cuò)!
          [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]風(fēng)機(jī)消聲器[/url][url=http://www.htsb.com.cn]風(fēng)機(jī)消音器[/url][url=http://ntscjx.zj.com]離心通風(fēng)機(jī)[/url][url=http://www.cdhhj.obm.cn]過濾器[/url][url=http://www.ccfj.obm.cn]除塵風(fēng)機(jī)[/url][url=http://www.adhesivetape.obm.cn]膠帶[/url][url=http://www.cdhhj.obm.cn]消聲器[/url][url=http://www.ntnhj.obm.cn]捏合機(jī)[/url][url=http://www.ntefj.obm.cn]離心通風(fēng)機(jī)[/url][url=http://www.ntefj.obm.cn]鍋爐通風(fēng)機(jī)[/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]混合機(jī)[/url][url=http://www.fjxsq.obm.cn]風(fēng)機(jī)消聲器[/url][url=http://www.fjxsq.obm.cn]風(fēng)機(jī)消音器[/url][url=http://www.blggs.obm.cn]玻璃鋼格柵[/url][url=http://www.goepe.com/company/show.php?uid=zngfj]除塵風(fēng)機(jī)[/url]
          2006-11-17 17:32 | r43r

          # re: 容器,Connection,事務(wù),DAO模式(側(cè)重JDBC分析)  回復(fù)  更多評(píng)論   

          [url=http://www.zngfj.com]鼓風(fēng)機(jī)[/url][url=http://www.ntznfj.obm.cn]鼓風(fēng)機(jī)[/url][url=http://www.xingdafj.cn]離心風(fēng)機(jī)[/url][url=http://www.ntjhxdjx.com]洗滌機(jī)械[/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]結(jié)晶器[/url][url=http://nthmg.go3.icpcn.com/]風(fēng)機(jī)說明書[/url][url=http://www.bsdfj.com]涂裝風(fēng)機(jī)[/url][url=http://www.bsdfj.com]離心風(fēng)機(jī)[/url][url=http://gzjx.91.tc]磨毛機(jī)[/url]
          [url=http://www.zngfj.com]離心鼓風(fēng)機(jī)[/url][url=http://www.chinacomposites.com.cn]格柵[/url][url=http://www.jinwangtape.com]膠帶[/url][url=http://nthmg.go3.icpcn.com/]風(fēng)機(jī)說明書制作[/url]
          [url=http://www.tzdfgl.cn]燃煤蒸汽鍋爐[/url]
          2007-05-21 16:45 | jhgj
          主站蜘蛛池模板: 南京市| 文登市| 沧源| 汕尾市| 茌平县| 黔江区| 体育| 建瓯市| 汕头市| 阜康市| 旬邑县| 四子王旗| 呼和浩特市| 渝北区| 白沙| 沙坪坝区| 枝江市| 鸡西市| 琼中| 武夷山市| 昌平区| 哈密市| 缙云县| 轮台县| 甘南县| 会泽县| 曲周县| 尉氏县| 察隅县| 杭锦旗| 云浮市| 沙湾县| 秦皇岛市| 万年县| 桐柏县| 三门峡市| 利川市| 义马市| 武夷山市| 鄂伦春自治旗| 北碚区|