spring中的HibernateDaoSupport的用法

来源:互联网 发布:杭州php工资收入多少 编辑:程序博客网 时间:2024/04/28 21:49

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

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

 

原创粉丝点击