概述Hibernate Session
Hibernate還是比較常用的,于是我研究了一下Hibernate Session,在這里拿出來和大家分享一下,希望對大家有用。
Hibernate Session
關于這一點,你可以參考關于Hibernate和持久層的文章或者指南,也可以查詢各種對象和實例來了解怎么使用事務,所以我不打算詳細說這些內容。相反,我會更多考慮使用實體后我們需要做什么?這會對Hibernate Session 對象有怎樣的影響?是否可以使用現有的業務對象,甚至是數據訪問對象?當我建立數據層的時候,我使用了Spring及其提供的一些類來管理數據庫連接,事務和會話。這些對象都在XML配置文件里面定義了,并與很多規則和關系緊密集成在Spring里。首先,通過Spring的依賴注射,DAO對象會被引入到應用服務中(關于依賴注射,參見Bruce Tate的《Five Things I Love About Spring》一書)。然后,配置應用服務以捕獲DAO異常(通過XML配置文件),讓Spring去處理。可是因為我覺得把Spring集成到數據加載應用里會帶來相當大的工作量。我對DAO對象做了輕微的修改,使得可以在web應用之外使用他們。
例如說在PersonDAO類里面有一個保存person對象的方法。如果Hibernate Session 是由容器建立的,那這個方法就不能在容器外使用,因為這需要一個配置好的Session對象。以下是一個典型的PersonDAO,它由Spring 容器提供了對Session的支持。
- import org.springframework.orm.hibernate.HibernateTemplate;
- import test.pojos.Person;
- public class PersonDAO extends HibernateTemplate {
- public PersonDAO(){}
- public Person save(Person aPerson) {
- if(aPerson != null) super.save(person);
- return person;
- }
- }
上面的類繼承的是Spring HibernateTemplate 類,它提供了各種不錯的使用Hibernate的基類方法。而且由于HibernateTemplate類維護了大多數的常見操作,你就只需要專注特定的持久層需求。當然也應該有相應的異常處理,但在本次范例當中,只要以上的就夠了。
【編輯推薦】

















