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

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);

总结:推荐使用回调函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值