bean.xml中添加:
<!-- spring对hibernate的简单封装 --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="mySessionFactory"/> </bean> <bean id="userDAOImpl" class="com.test.dao.impl.UserDAOImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"/> </bean> <bean id="logDAOImpl" class="com.test.dao.impl.LogDAOImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"/> </bean>
实现接口类
UserDAOImpl.java
package com.test.dao.impl; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.test.dao.UserDAO; import com.test.model.User; public class UserDAOImpl extends HibernateDaoSupport implements UserDAO { public void save(User user) { this.getHibernateTemplate().save(user); } }
LogDAOImpl.java
package com.test.dao.impl; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.test.dao.LogDAO; import com.test.model.Log; public class LogDAOImpl extends HibernateDaoSupport implements LogDAO { public void save(Log log) { this.getHibernateTemplate().save(log); } }
其他内容和“spring进行声明式事务管理(xml)”这一节一致
注:hibernateDaoSupport很少用,因为它只能用xml方式,不能用annotation方式(这里不是绝对的,这里说不能用平时习惯使用的annotation方式,因为HibernateDaoSupport类中的所有方法都是final的,不能被继承),只要有多少个实现接口的类,就得在bean.xml中配置多少个实现接口的类,比起hibernateTemplate,还是用后者更省心。
合理使用继承关系还是可以使用annotation的方式,以下使用annotation方式实现:
bean.xml中添加:
<!-- spring对hibernate的简单封装 --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="mySessionFactory"/> </bean>
SuperDAO.java
package com.test.dao.impl; import javax.annotation.Resource; import org.hibernate.SessionFactory; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class SuperDAO extends HibernateDaoSupport { // 第一种方式(注:这里不是setHibernateTemplate) /* @Resource public void setSuperHibernateTemplate(HibernateTemplate hibernateTemplate) { super.setHibernateTemplate(hibernateTemplate); }*/ // 第二种方式(注:这里不是setHibernateTemplate) @Resource public void setSuperHibernateTemplate(SessionFactory sessionFactory) { super.setSessionFactory(sessionFactory); } }
实现接口类
UserDAOImpl.java
package com.test.dao.impl; import org.springframework.stereotype.Component; import com.test.dao.UserDAO; import com.test.model.User; @Component("userDAOImpl") public class UserDAOImpl extends SuperDAO implements UserDAO { public void save(User user) { this.getHibernateTemplate().save(user); } }
LogDAOImpl.java
package com.test.dao.impl; import org.springframework.stereotype.Component; import com.test.dao.LogDAO; import com.test.model.Log; @Component("logDAOImpl") public class LogDAOImpl extends SuperDAO implements LogDAO { public void save(Log log) { this.getHibernateTemplate().save(log); } }
其他内容和“spring进行声明式事务管理(xml)”这一节一致
相关推荐
5. **Spring与Hibernate整合**:Spring提供了HibernateTemplate和HibernateDaoSupport等工具类,简化了Hibernate的使用。通过@Autowired或XML配置,可以将SessionFactory注入到DAO或Service类中,实现依赖注入。 6....
- **DAO(Data Access Object)**:Spring通过`HibernateTemplate`或`HibernateDaoSupport`简化DAO层的编写,提供事务封装。 4. **Spring JDBC与Hibernate的比较** - **灵活性**:Hibernate提供更高级别的对象...
此文档作为对《使用Annotation并对DAO层封装具有分页功能的S2SH整合实例》的后续补充,重点在于通过XML配置文件而非注解的方式来完成框架间的整合。 #### 目标读者 本文档适用于具备一定的Java开发基础,特别是对...
HibernateTemplate是Spring早期提供的一个工具类,它封装了对Hibernate Session的操作,提供了事务管理和异常转换等功能。通过`spring_integration_hibernate3_template`文件,我们可以学习如何配置...
在这个"sshFrame(struts2.3.4+spring3.1+heibernate4.0+annotation零配置"项目中,我们看到作者使用的是Struts2的3.4版本,Spring的3.1版本以及Hibernate的4.0版本,这些都是成熟且广泛使用的开源库。 **Struts2** ...
* 创建hibernate.cfg.xml文件连接数据库,加载SysUserGroup.hbm.xml文件,放置src下 <property name="hibernate.connection.username">root</property> <property name="hibernate.connection....
- 使用Spring的HibernateTemplate和HibernateDaoSupport类。 - 使用LocalSessionFactoryBean来配置SessionFactory。 - 使用@Transaction注解进行声明式事务管理。 36、列举spring支持的事务管理类型。 Spring支持的...
SSH(Struts + Spring + Hibernate)是一个经典的Java Web开发框架,用于构建企业级应用程序。在这个主题中,“ssh数据库基本操作封装”指的是将常用的数据库交互功能,如增删改查(CRUD),通过SSH框架进行封装,...
通过以上步骤,可以实现一个简单的Spring+Hibernate应用,实现用户的基本CRUD操作。此练习不仅帮助理解和掌握了Spring框架的核心概念,还能进一步熟悉Spring与Hibernate的整合流程及具体实现细节。
- **HibernateDaoSupport**:提供了一个支持Hibernate的基类。 #### SSH整合 - **整合步骤**: 1. **加入jar包**:确保项目中包含了Spring、Struts2和Hibernate的所有必要jar包。 2. **整合Spring与Hibernate**...
- **Hibernate Annotation**:利用注解进行实体类映射,替代了传统的XML配置方式,提高了代码的可读性和可维护性。 - **PJLFilter**:提供数据压缩功能,支持多种压缩算法,有效减少网络传输量,提升系统性能。 ###...
这个类提供了对HibernateTemplate的便捷访问,HibernateTemplate是Spring提供的一个工具类,用于封装和执行HQL查询、保存、更新和删除操作。这样,我们就可以避免直接操作Hibernate的Session和Transaction,让Spring...