一:
回調函數:
[code]
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());//[b]執行普通sql[/b]
Query query = s.createQuery(sb.toString());// [b]執行hql [/b]
List list = query.list();
return list ;
}
});
}
[/code]
採用這種做法的好處是:不用關心事務。session的創建和銷燬,一切都在程序內部完成。看看名字doInHibernate就知道好處了。不好的是程序看起來比較亂!個人認爲。
二:
[code]
getHibernateTemplate().find():
List list = getHibernateTemplate().find(String sql ):
[/code]
這種的前提是sql必須是hql ,原始sql 不能執行。
三:
自己獲取session處理。
獲取session的兩種方式:this.getSession();和this.getHibernateTemplate().getSessionFactory().openSession();
獲取session以後再createQuery操作就一樣了。但是這種做法,是需要自己去手動關閉session的。所以你需要配置openSessioninview,個人認爲不推薦使用!
其他:
getHibernateTemplate.delete(Object);
getHibernateTemplate.save(Object);
getHibernateTemplate.update(Object);
總結:推薦使用回調函數。