spring中的HibernateDaoSupport的用法

HibernateDaoSupport中自帶了hibernate的模板供編程者使用。

前提條件:你的類必須繼承HibernateDaoSupport
一:
回調函數:
public List getList(){
   return (List ) getHibernateTemplate().execute(
     new HibernateCallback() {
      public List doInHibernate(final Session s)
        throws HibernateException, SQLException {

StringBuffer sb = new StringBuffer();
Query query = s.createSQLQuery(sb.toString());//<STRONG>執行普通sql</STRONG>
Query query = s.createQuery(sb.toString());// <STRONG>執行hql </STRONG>
List list = query.list();
return list ;
      }
     });   
}
採用這種做法的好處是:不用關心事務。session的創建和銷燬,一切都在程序內部完成。看看名字doInHibernate就知道好處了。不好的是程序看起來比較亂!這也是我用spring最亂的地方,初學者看起來太亂了。
二:
getHibernateTemplate().find():
List list = getHibernateTemplate().find(String hql):
這裏傳進來的是hql不是sql。

三:
自己獲取session處理。
獲取session的兩種方式:this.getSession();和this.getHibernateTemplate().getSessionFactory().openSession();
獲取session以後再createQuery操作就一樣了。但是這種做法,是需要自己去手動關閉session的。所以你需要配置openSessioninview。

其他:
getHibernateTemplate.delete(Object);

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

總結:推薦使用回調函數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章