您的位置:首页 > 编程语言 > Java开发

spring中的HibernateDaoSupport的用法(Session是如何获取的)

2015-03-10 20:53 465 查看
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);

总结:推荐使用回调函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐