Spring - Java/J2EE Application Framework 应用框架 第 9 章 DAO支持
第?9?章?DAO支持
9.1.?簡介
Spring中的DAO(數據訪問對象)支持主要的目標是便于以標準的方式使用數據訪問技術, 如JDBC,Hibernate或者JDO。它不僅可以讓你在這些技術間相當容易的切換, 而且讓你在編碼的時候不需要考慮捕獲各種技術中特定的異常。
9.2.?一致的異常層次
Spring提供了一個簡便的把某種技術特定的異常如SQLException?轉化為它自身的異常層次中的基類異常DataAccessException的方法。 這些異常包裝了原始的異常,所以你不必擔心會丟失任何可能造成錯誤的異常信息。
除了對JDBC異常的包裝外,Spring也可以包裝Hibernate的異常,把它們從專有的, checked exceptions轉化為一系列抽象的runtime exceptions。 同樣的情況也適用于JDO的異常。它可以讓你處理大多數持久的異常而不需要討厭的樣板式catches/throws代碼塊和異常聲明, 這些異常是不可恢復的,只在一些適當的層出現.你仍然可以在需要的地方捕獲并處理這些異常。 象我們上面提到的一樣,JDBC的異常(包括不同數據庫特定的方言)也可以轉化至同樣的異常層次, 這意味著你可以在一致的編程模型下使用JDBC執行某些操作。
上述的情況適合于Template版本的ORM存取框架。如果你使用基于攔截器的類, 應用中就必須小心的處理HibernateExceptions和JDOExceptions, 最好選擇通過SessionFactoryUtils 中的convertHibernateAccessException和convertJdoAccessException方法代理。 這些方法可以把異常轉化為與兼容org.springframework.dao異常層次的異常。 JDOException屬于unchecked exception,它們則被簡單的拋出,盡管這在異常處理方面犧牲了通用的DAO抽象。
下面的圖描述了Spring使用的異常層次:
9.3.?一致的DAO支持抽象類
為了便于以一致的方式使用不同的數據訪問技術如JDBC,JDO和Hibernate, Spring提供了一套抽象的DAO類供你繼承。這些抽象類提供一些方法來設置數據源, 以及你正在使用的技術中專有的一些配置設定。
Dao支持類:
-
JdbcDaoSupport?- JDBC數據訪問對象的基類。 需要設置數據源,同時為子類提供JdbcTemplate。
-
HibernateDaoSupport?- Hibernate數據訪問對象的基類。 需要設置SessionFactory,同時為子類提供HibernateTemplate。可以選擇直接通過HibernateTemplate來初始化, 這樣就可以重用后者的設置,例如SessionFactory,flush的方式,異常解釋器等等。
-
JdoDaoSupport?- JDO數據訪問對象的基類。 需要設置PersistenceManagerFactory,同時為子類提供JdoTemplate。
總結
以上是生活随笔為你收集整理的Spring - Java/J2EE Application Framework 应用框架 第 9 章 DAO支持的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring - Java/J2EE A
- 下一篇: Spring - Java/J2EE A