bean.xml中添加:
<!-- spring对hibernate的简单封装 --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="mySessionFactory"/> </bean>
实现接口类
UserDAOImpl.java
package com.test.dao.impl; import javax.annotation.Resource; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.stereotype.Component; import com.test.dao.UserDAO; import com.test.model.User; @Component("userDAOImpl") public class UserDAOImpl implements UserDAO { private HibernateTemplate hibernateTemplate; public HibernateTemplate getHibernateTemplate() { return hibernateTemplate; } @Resource public void setHibernateTemplate(HibernateTemplate hibernateTemplate) { this.hibernateTemplate = hibernateTemplate; } public void save(User user) { hibernateTemplate.save(user); } }
LogDAOImpl.java
package com.test.dao.impl; import javax.annotation.Resource; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.stereotype.Component; import com.test.dao.LogDAO; import com.test.model.Log; @Component("logDAOImpl") public class LogDAOImpl implements LogDAO { private HibernateTemplate hibernateTemplate; public HibernateTemplate getHibernateTemplate() { return hibernateTemplate; } @Resource public void setHibernateTemplate(HibernateTemplate hibernateTemplate) { this.hibernateTemplate = hibernateTemplate; } public void save(Log log) { hibernateTemplate.save(log); } }
以上两个实现接口的类,都有hibernateTemplate属性,设想如果实现这个接口的类多了,是不是每个实现接口的类中都要有hibernateTemplate属性,那是否考虑把这个属性作为一个公共的属性提取出来呢?当然可以,用继承实现:
SuperDAO.java
package com.test.dao.impl; import javax.annotation.Resource; import org.springframework.orm.hibernate3.HibernateTemplate; public class SuperDAO { private HibernateTemplate hibernateTemplate; public HibernateTemplate getHibernateTemplate() { return hibernateTemplate; } @Resource public void setHibernateTemplate(HibernateTemplate hibernateTemplate) { this.hibernateTemplate = hibernateTemplate; } }
实现接口类
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)”这一节一致
相关推荐
为了解决这些问题,Spring框架提供了一个称为HibernateTemplate的类,它是对Hibernate API的一个封装,旨在提高开发效率和代码的可维护性。 **一、HibernateTemplate介绍** HibernateTemplate是Spring框架的一个...
本篇将深入探讨Spring与Hibernate的集成,特别是Spring提供的HibernateTemplate,它是Spring对Hibernate的一种封装,简化了数据库操作。我们将围绕以下几点进行详细讲解: 1. **Spring框架基础**: Spring是一个...
标题中的"Spring_2000_Spring_Hibernate_HibernateTemplate"显然指的是一个关于Spring框架、Hibernate ORM框架以及其在2000年左右的版本或应用方式的专题。在这个主题下,我们将深入探讨Spring框架的核心特性,以及...
通过Spring对Hibernate的管理,我们可以更好地控制事务、实现解耦,同时降低出错的可能性。此外,Spring的AOP支持使得事务管理更加简单,提高了代码的可测试性。在实际项目中,这种集成方式被广泛应用,是Java EE...
Spring和Hibernate的整合可以简化Java应用的开发,通过Spring对Hibernate的封装,开发者无需直接操作SessionFactory和Session,而是使用更简洁、易用的API,同时还能享受到Spring的事务管理能力,提高代码的可维护性...
有效的Session管理:Spring提供了有效、简单、安全的Hibernate Session处理。 IoC容器降低了DAO组件与业务逻辑层之间的耦合性。 DAO模式的使用,降低了系统重构的代价。 方便的事务管理:Spring提供的声明式事务处理...
HibernateTemplate封装了一些常用的Hibernate操作,如save、update、delete、find等。 6. **注解驱动的实体类和映射**:Hibernate支持使用注解来定义实体类和数据库表之间的映射。例如,使用`@Entity`标记实体类,`...
4. **定义DAO层**:使用Spring的HibernateTemplate或JdbcTemplate,编写数据访问对象(DAO),实现对数据库的操作。 5. **定义Service层**:创建业务服务接口和实现,使用Spring的@Autowired注解注入DAO,封装业务...
3. **Hibernate Template或JPA**:Spring提供了HibernateTemplate,这是一个简化Hibernate操作的工具类。然而,随着Spring Data JPA的出现,现在更多地推荐使用JPA,它提供了一种基于标准的、与ORM供应商无关的方式...
源码分析通常涉及对配置文件的理解,如Spring的beans.xml和Hibernate的hibernate.cfg.xml,以及相关类的设计和交互。此外,还可以通过源码学习到如何处理异常、优化数据库操作,以及如何设计符合松耦合原则的架构。
2. HibernateTemplate:这是Spring提供的一个辅助类,它封装了SessionFactory的一些常用操作,如保存、更新、删除和查询等。使用HibernateTemplate可以简化代码,避免直接与Session对象打交道,减少出错的可能性。 ...
2. 工具类和实用方法:可能提供了对Spring和Hibernate常用操作的封装,提高开发效率。 3. 模块化设计:可能将不同的功能模块化,便于代码重用和维护。 4. 性能优化:可能包含了针对Spring和Hibernate的性能调优策略...
这个实现类继承自`HibernateDaoSupport`,利用Spring提供的`HibernateTemplate`简化了Hibernate的调用。`HibernateDaoSupport`内部封装了SessionFactory,提供了一些常用的数据访问操作方法。 ##### 3. ...
Spring 提供了 HibernateTemplate 类,它是一个简化版的 Hibernate Session 操作工具,自动处理了 Session 的创建、关闭以及异常处理,使得开发者无需在 DAO 层处理复杂的事务控制。此外,Spring 还支持使用 AOP 来...
Spring通过其HibernateTemplate或SessionFactoryBean类提供了对Hibernate的集成支持,使得在Spring应用中使用Hibernate变得更加便捷。 2. **配置文件**:整合过程中,我们需要配置Spring的ApplicationContext.xml...
2. **使用 HibernateTemplate**: Spring 为 Hibernate 提供了一个抽象层,即 HibernateTemplate 类,它封装了 Session 的常用操作,如保存、更新、删除和查询等,同时处理了事务管理和异常转换。在 Spring 容器中...
2) **Spring与Hibernate的集成**:Spring提供了HibernateTemplate和SessionFactoryBean,帮助开发者更方便地使用Hibernate。Spring管理Hibernate的Session,提供事务控制,使得事务管理更为集中和透明。 **程序的包...
HibernateTemplate是Spring对Hibernate的封装,它同样简化了数据库操作。与JdbcTemplate不同,HibernateTemplate使用了Hibernate ORM,可以直接操作对象,而不是SQL语句。它可以自动处理对象的持久化、加载、更新和...
4. **Spring的HibernateTemplate或HibernateDaoSupport**:Spring提供了HibernateTemplate和HibernateDaoSupport类,用于简化Hibernate操作。在这个Demo中,可能会使用它们来封装数据访问操作。 5. **Entity(实体...