免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
getHibernateTemplate用法 hibernate

前提條件:你的類必須繼承HibernateDaoSupport 
一: 
回調(diào)函數(shù): 

Java代碼  
  1. public List getList(){  
  2.         return (List ) getHibernateTemplate().execute(  
  3.                 new HibernateCallback() {  
  4.                     public List doInHibernate(final Session s)  
  5.                             throws HibernateException, SQLException {  
  6.   
  7. StringBuffer sb = new StringBuffer();  
  8. Query query = s.createSQLQuery(sb.toString());//[b]執(zhí)行普通sql[/b]  
  9. Query query = s.createQuery(sb.toString());//   [b]執(zhí)行hql [/b]  
  10. List list = query.list();  
  11. return list ;  
  12.                     }  
  13.                 });           
  14.     }  


采用這種做法的好處是:不用關(guān)心事務(wù)。session的創(chuàng)建和銷毀,一切都在程序內(nèi)部完成??纯疵謉oInHibernate就知道好處了。不好的是程序看起來比較亂!個人認(rèn)為。 
二: 

Java代碼  
  1. getHibernateTemplate().find():  
  2. ist list = getHibernateTemplate().find(String sql ):  


這種的前提是sql必須是hql ,原始sql 不能執(zhí)行。 

三: 
自己獲取session處理。 
獲取session的兩種方式:this.getSession();和this.getHibernateTemplate().getSessionFactory().openSession(); 
獲取session以后再createQuery操作就一樣了。但是這種做法,是需要自己去手動關(guān)閉session的。所以你需要配置openSessioninview,個人認(rèn)為不推薦使用! 

其他: 
getHibernateTemplate.delete(Object); 

getHibernateTemplate.save(Object); 
getHibernateTemplate.update(Object); 

總結(jié):推薦使用回調(diào)函數(shù)。 

 

補(bǔ)充百科:

Spring的Hibernate ORM 框架帶來了方便的HibernateDaoSupport類,你的DAO類可以繼承它:
public class StudentDaoHibernate extends HibernateDaoSupport implements StudentDao{
.................
}
如果你選擇這種設(shè)計,就需要動態(tài)注入SessionFactory而HibernateDaoSupport包含這個屬性.這個類提供了一個方便的方法getHibernateTemplate(); 就能得到HibernateTemplate的一個實例.它也有g(shù)etSession()和releaseSession,以便于你應(yīng)為某些原因而不使用HibernateTempate的情況下執(zhí)行Hibernate操作。
HibernateDaoSupport提供了基于AOP事務(wù)的自動處理,程序員完全可以不用理會事務(wù)的開始與提交。在JDBC中一個Connection對象使用一個事務(wù),那么在Hibernate中一個事務(wù)肯定要關(guān)聯(lián)一個SessionFactory了,然而這個SessionFactory卻沒有在DAO中體現(xiàn)。其實主要的原因是HibernateDaoSupport類已經(jīng)默默地做了封裝的工作,它用一個setSessionFactory方法將SessionFactory進(jìn)行注入,所以繼承自HibernateDaoSupport類的DAO都會具有SessionFactory的屬性,從而可以通過SessionFactory創(chuàng)建Session實例操作數(shù)據(jù)庫。
在繼承HibrnateDaoSupport的DAO實現(xiàn)里,Hibernate Session的管理完全不需要Hibernate代碼打開,而由Spring來管理。Spring會根據(jù)實際的操作,采用“每次事務(wù)打開一次session”的策略,自動提高數(shù)據(jù)庫訪問的性能。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
hibernate原生SQL查詢,返回值映射到MAP
HibernateTemplate.execute(HibernateCallback action)回調(diào)方式
回調(diào) Spring Hibernate DAO 持久層開發(fā),
Hibernate中查詢數(shù)據(jù)庫的幾種方法
Spring整合Hibernate中對HibernateTemplate的思考
HibernateDaoSupport的方法
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服