spring中的HibernateDaoSupport的用法
2011-07-02 21:19
543 查看
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);
总结:推荐使用回调函数。
前提条件:你的类必须继承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);
总结:推荐使用回调函数。
相关文章推荐
- spring中的HibernateDaoSupport的用法(Session是如何获取的)
- spring中的HibernateDaoSupport的用法
- spring中的HibernateDaoSupport的用法
- spring中的HibernateDaoSupport的用法
- Spring与Hibernate整合的HibernateDaoSupport应用中的“内存泄露”问题(学习心得)
- Spring整合Hibernate,不用HibernateDaoSupport与HibernateTemplate而用Hibernate自己的api分析说明
- Spring的HibernateDaoSupport DaoSupport用HibernateTemplate,JdbcTemplate详解 .
- 使用Spring的HibernateDaoSupport时的getSession()3个方法的区别
- 使用Spring的HibernateDaoSupport时的getSession()3个方法的区别
- HibernateTemplate和HibernateDaoSupport(spring注入问题)
- 使用Spring的HibernateDaoSupport时的getSession()3个方法的区别
- Spring使用HibernateDaoSupport操作数据
- Spring中使用HibernateDaoSupport来进行数据库的操作
- Spring整合Hibernate,不用HibernateDaoSupport与HibernateTemplate而用Hibernate自己的api分析说明
- Spring4 集成 Hibernate3 使用 HibernateTemplate 和使用 HibernateDaoSupport 操作对象
- Spring的HibernateDaoSupport DaoSupport用HibernateTemplate,JdbcTemplate详解
- spring入门(12)-spring与hibernate整合完成增删改查的操作(继承HibernateDaoSupport调用hibernateTemplate类)
- Java程序员从笨鸟到菜鸟之(八十一)细谈Spring(十)深入源码分析Spring之HibernateTemplate 和HibernateDaoSupport
- spring的HibernateDaoSupport以及HibernateTemplate和jdbcTemplate的选择问题
- 使用Spring的HibernateDaoSupport时的getSession()3个方法的区别