Spring学习——(八)关于HibernateTemplate的使用
来源:互联网 发布:log4j ubuntu 不生效 编辑:程序博客网 时间:2024/05/10 05:47
Spring4.2.5中添加了对HibernateTemplate的支持,模板化的编程思想使得在操作session的方法的时候更加简便了。
首先在XML文件中添加一个HibernateTemplate对象:
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory"></property></bean>之后在DAO层就不需要再获得SessionFactory继而获得session对象再实现session的方法了,直接操作HibernateTemplate对
象,依旧采用注入的方式,将HibernateTemplate对象注入UserDAOImpl之中。之后便可以通过其调用原本session中的方法。
package cn.wqy.DAO;import javax.annotation.Resource;import org.springframework.orm.hibernate4.HibernateTemplate;import org.springframework.stereotype.Repository;import cn.wqy.model.User;@Repository("userDAO")public class UserDAOImpl implements UserDAO {private HibernateTemplate hibernateTemplate;public HibernateTemplate getHibernateTemplate() {return hibernateTemplate;}@Resourcepublic void setHibernateTemplate(HibernateTemplate hibernateTemplate) {this.hibernateTemplate = hibernateTemplate;}@Overridepublic void add(User user) {// TODO Auto-generated method stubhibernateTemplate.save(user);}}在HibernateTemplate的模板类中封装了session的许多方法,封装过程是采用的callBack的形式,可以看做是一个钩子函数。每个封
装的方法返回一个方法的对象,这个方法包括了对session的获取等操作,只是空出了操作的具体执行,这个方法传入了一个
HibernateCallback接口对象,含有一个doInHibernate方法,利用这个接口对象将doInHibernate方法放在上面说的空白位置。在真正
执行方法的时候实例化一个接口对象,传入session的方法。以save方法为例:
@Overridepublic Serializable save(final Object entity) throws DataAccessException {return executeWithNativeSession(new HibernateCallback<Serializable>() {@Overridepublic Serializable doInHibernate(Session session) throws HibernateException {checkWriteOperationAllowed(session);return session.save(entity);}});}
0 0
- Spring学习——(八)关于HibernateTemplate的使用
- spring 中HibernateTemplate的使用
- spring+hibernate--HibernateTemplate的使用
- Spring——HibernateTemplate、hibernateDaoTemplate
- Spring—HibernateTemplate方法总结
- 《Spring技术内幕》学习笔记12——HibernateTemplate对Hibernate的封装
- 《Spring技术内幕》学习笔记12——HibernateTemplate对Hibernate的封装
- 《Spring技术内幕》学习笔记12——HibernateTemplate对Hibernate的封装
- 使用spring的hibernateTemplate的方法
- 使用spring的hibernateTemplate的方法
- 使用spring的hibernateTemplate的方法
- 使用spring的hibernateTemplate的方法
- 使用spring的hibernateTemplate的方法
- 如何使用Spring的HibernateTemplate分页
- spring中HibernateTemplate类的使用
- Spring中HibernateTemplate类的使用
- spring 整合Hibernate使用HibernateTemplate的坑
- Spring- HibernateTemplate使用
- Roman to Integer
- 使用堆栈(Stack)来模拟队列(FIFO)功能,要求数据必须存储在堆栈内部.需要实现enqueue(入栈),dequeue(出栈),isEmpty(判空)三个功能,并给出单元测试.
- ARM 开发笔记 mini2440 Unexpected core ID. (Found: 0x0032409D/0x00000000, Expected: 0x0032409F)
- Problem n
- 面试中65个问题的技巧回答,需要工作的你必须看看
- Spring学习——(八)关于HibernateTemplate的使用
- dom方法解析xml文件
- C++作业2
- 第五十四篇:BP神经网络博文集
- NSInteger/NSUInteger与int/unsigned int、long/unsigned long的区别
- 算法题
- Codeforces Round #346 (Div. 2) A.B.C.D.E
- 【杭电oj】1878 - 欧拉回路(欧拉回路,并查集)
- STM32中IO模式