欢迎来到天天文库
浏览记录
ID:42542251
大小:72.50 KB
页数:16页
时间:2019-09-17
《HibernateTemplate详解_免费下载》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、getHibernateTemplate()详解一、getHibernateTemplate()与getSession()区别: 自动生成hibernate配置文件的时候,会在dao层用到getSession()方法来操作数据库记录,但是他还有个方法getHibernateTemplate(),这两个方法究竟有什么区别呢? 1.使用getSession()方法你只要继承sessionFactory,而使用getHibernateTemplate()方法必须继承HibernateDaoSup
2、port当然包括sessionFactory,这点区别都不是特别重要的,下面这些区别就很重要了 2.getSession()方法是没有经过spring包装的,spring会把最原始的session给你,在使用完之后必须自己调用相应的close方法,而且也不会对声明式事务进行相应的管理,一旦没有及时关闭连接,就会导致数据库连接池的连接数溢出,getHibernateTemplate()方法是经过spring封装的,例如添加相应的声明式事务管理,由spring管理相应的连接。 在实际的使用过程中
3、发现的确getHibernateTemplate()比getSession()方法要好很多,但是有些方法在getHibernateTemplate()并没有提供,这时我们用HibernateCallback回调的方法管理数据库. 例如如下代码: /** *使用hql语句进行操作 *@paramhqlHSQL查询语句(使用回调函数访问外部变量,必须是final的) *@paramoffset开始取数据的下标 *@paramlength读取数据记录数 *@return
4、List结果集 */ publicListgetListForPage(finalStringhql,finalintoffset,finalintlength){ Listlist=getHibernateTemplate().executeFind(newHibernateCallback(){ publicObjectdoInHibernate(Sessionsession)throwsHibernateExcep
5、tion,SQLException{ Queryquery=session.createQuery(hql); query.setFirstResult(offset); query.setMaxResults(length);
6、 Listlist=query.list(); returnlist; } }); returnlist; } 二、getHibernateTemplate()常用方法 Java代码 1. Java代码 2. 1、find(Strin
7、g queryString); 3. 4. 示例:this.getHibernateTemplate().find("from bean.User"); 5. 6. 返回所有User对象 7. 8. 9. 2、find(String queryString , Object value); 10. 11. 示例:this.getHibernateTemplate().find("from bean.User u
8、 where u.name=?", "test"); 12. 13. 或模糊查询:this.getHibernateTemplate().find("from bean.User u where u.name like ?", "%test%"); 14. 15. 返回name属性值为test的对象(模糊查询,返回name属性值包含test的对象) 16. 17. 18.3、find(String queryS
此文档下载收益归作者所有