Sung in Blog

                     一些技術文章 & 一些生活雜碎

          WebSite ConnecTionS

          西北工業大學 Offer收割機
          Java開源大全 Matrix - 與 Java 共舞
          Java World Kingnet國家網絡醫院

          常用鏈接

          隨筆檔案

          文章分類

          積分與排名

          • 積分 - 255950
          • 排名 - 221

          最新評論

          閱讀排行榜

          評論排行榜

          O/R mapping 集成

          當然你經常需要使用O/R mapping,而不是使用關系數據訪問。你總體的應用程序框架也必須支持它。因而提供了對Hibernate 2.x和JDO的集成支持。它的數據訪問架構使得它能和任何底層的數據訪問技術集成。Spring和Hibernate集成得尤其好。

          為什么你要使用Hibernate加Spring,而不是直接使用Hibernate?
           
          Session 管理 Spring提供有效率的,簡單的以并且是安全的處理Hibernate Session。使用Hibernate的相關代碼為了效率和恰當的事務處理一般需要使用相同的Hibernate “Session”對象。Spring讓它容易透明地創建和綁定Session到當前的線程,要么使用聲明式,AOP的method interceptor方法,要么在Java代碼層面使用顯式的,“template”包裝類。因而Spring解決了在Hibernate論壇上經常出現的用法問題。

          資源管理 Spring的應用程序context能夠處理Hiberante SessionFactories的位置和配置,JDBC數據源和其他相關資源。這使得這些值易于管理和改變。

          集成的事務管理 Spring讓你能夠把你的Hibernate代碼包裝起來,要么使用聲明式,AOP風格的method interceptor,要么在Java代碼層面顯式使用“template”包裝類。在兩種做法中,事務語義都為你處理了,并且在異常時也做好了恰當的事務處理(回滾,等)。如下面討論的,你還獲得了能夠使用和替換不同transaction manager,而不會讓你相關Hibernate代碼受到影響的能力。額外的,JDBC相關的代碼能夠完全事務性的和Hibernate代碼集成。這對于處理沒有在Hibernate實現的功能很有用。

          如上描述的異常包裝 Spring能夠包裝Hibernate異常,把它們從私有的,checked異常轉換為一套抽象的運行時異常。這使得你能夠僅僅在恰當的層面處理大部分不可恢復的持久化異常,而不影響樣板catch/throw,和異常聲明。你仍然能夠在任何你需要的地方捕捉和處理異常。記住JDBC異常(包括DB特有的方言)也被轉換到相同的層次中,意味著你能在一致的編程模型中對JDBC執行相同的操作。

          為了避免和廠商綁定 Hibernate是強大的,靈活的,開放源代碼并且免費,但是它仍然使用私有的API。給出了一些選擇,使用標準或者抽象API實現主要的程序功能通常是你想要的,當你需要因為功能,性能,或者其他考慮要轉換到使用其他實現時。

          讓測試變簡單 Spring的Inversion of Control方法使得改變Hibernate的session factories,數據源,transaction manager的實現和位置很容易,如果需要的話還能改變mapper object的實現。這使得更加容易分離和測試持久化相關的代碼。
          posted on 2005-10-26 15:55 Sung 閱讀(210) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 隆昌县| 茂名市| 读书| 姜堰市| 沙田区| 旌德县| 珠海市| 潞城市| 哈尔滨市| 大姚县| 卓尼县| 宝坻区| 康平县| 五大连池市| 苗栗市| 大埔区| 兰州市| 府谷县| 镇远县| 奉新县| 昭苏县| 安宁市| 江西省| 澳门| 柘城县| 应城市| 泗阳县| 华坪县| 虹口区| 昌宁县| 鞍山市| 武汉市| 当雄县| 天津市| 福鼎市| 婺源县| 泰宁县| 固镇县| 繁峙县| 平乡县| 台中县|