更新時間:2022-04-29 09:44:54 來源:動力節點 瀏覽1770次
Hibernate的Session獲取方式是什么?動力節點小編來告訴大家。Session是應用程序與數據庫之間的一個會話,其重要性不言而喻。初學Hibernate,使用SessionFactory,老老實實地打開事務,提交,回滾,關閉session。
例子如下:
try {
SessionFactory sf =
new Configuration().configure().buildSessionFactory();
Session session = sf.openSession();
也可用 sf.getCurrentSession();區別在于前者每次都創建一個新的Session,而后者在當前無Session時才創建,否則會綁定到當前已有線程;前者必須手動關閉,后者在事務結束后自動關閉。
Transaction tx = session.beginTransaction();
……
……
……
若干操作
tx.commit();
session.close();
} catch (HibernateException e) {
e.printStackTrace();
}
}
}
后來,由于這樣做太過繁瑣每一步都得自行建立,因此引入spring管理Session。sessionfactory的創建等都交給spring管理.用戶可以不再考慮session的管理,事務的開啟關閉.只需配置事務即可.
在applicationContext.xml中配置好相關事務,就可以很方便地獲取Session了。
@Autowired
HibernateTemplate hibernateTemplate;
Session session=hibernateTemplate.getSessionFactory().openSession();
this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException{
do something;
}
});
在Spring+Hibernate環境中,推薦用這種方式來獲取session。這種方法的優勢在于你不需要對session進行維護,會由Spring事務管理。你只需在需要session環境時,調用即可。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習