`

spring对hibernate的简单封装(hibernateTemplate)

 
阅读更多

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)”这一节一致

分享到:
评论

相关推荐

    对hibernate的封装 HibernateTemplate

    为了解决这些问题,Spring框架提供了一个称为HibernateTemplate的类,它是对Hibernate API的一个封装,旨在提高开发效率和代码的可维护性。 **一、HibernateTemplate介绍** HibernateTemplate是Spring框架的一个...

    Spring_Spring_Hibernate_HibernateTemplate

    本篇将深入探讨Spring与Hibernate的集成,特别是Spring提供的HibernateTemplate,它是Spring对Hibernate的一种封装,简化了数据库操作。我们将围绕以下几点进行详细讲解: 1. **Spring框架基础**: Spring是一个...

    Spring_2000_Spring_Hibernate_HibernateTemplate

    标题中的"Spring_2000_Spring_Hibernate_HibernateTemplate"显然指的是一个关于Spring框架、Hibernate ORM框架以及其在2000年左右的版本或应用方式的专题。在这个主题下,我们将深入探讨Spring框架的核心特性,以及...

    Spring与Hibernate集成

    通过Spring对Hibernate的管理,我们可以更好地控制事务、实现解耦,同时降低出错的可能性。此外,Spring的AOP支持使得事务管理更加简单,提高了代码的可测试性。在实际项目中,这种集成方式被广泛应用,是Java EE...

    Spring整合hibernate(2)之基于HibernateTemplate的整合

    Spring和Hibernate的整合可以简化Java应用的开发,通过Spring对Hibernate的封装,开发者无需直接操作SessionFactory和Session,而是使用更简洁、易用的API,同时还能享受到Spring的事务管理能力,提高代码的可维护性...

    第24次课-1 Spring与Hibernate的整合

    有效的Session管理:Spring提供了有效、简单、安全的Hibernate Session处理。 IoC容器降低了DAO组件与业务逻辑层之间的耦合性。 DAO模式的使用,降低了系统重构的代价。 方便的事务管理:Spring提供的声明式事务处理...

    Spring整合Hibernate.jar

    HibernateTemplate封装了一些常用的Hibernate操作,如save、update、delete、find等。 6. **注解驱动的实体类和映射**:Hibernate支持使用注解来定义实体类和数据库表之间的映射。例如,使用`@Entity`标记实体类,`...

    webservice提供数据访问spring+hibernate

    4. **定义DAO层**:使用Spring的HibernateTemplate或JdbcTemplate,编写数据访问对象(DAO),实现对数据库的操作。 5. **定义Service层**:创建业务服务接口和实现,使用Spring的@Autowired注解注入DAO,封装业务...

    spring_hibernate整合实例

    3. **Hibernate Template或JPA**:Spring提供了HibernateTemplate,这是一个简化Hibernate操作的工具类。然而,随着Spring Data JPA的出现,现在更多地推荐使用JPA,它提供了一种基于标准的、与ORM供应商无关的方式...

    Spring,Hibernate整合源码

    源码分析通常涉及对配置文件的理解,如Spring的beans.xml和Hibernate的hibernate.cfg.xml,以及相关类的设计和交互。此外,还可以通过源码学习到如何处理异常、优化数据库操作,以及如何设计符合松耦合原则的架构。

    一个模拟Spring将SessionFactory注入到HibernateTemplate的小例子

    2. HibernateTemplate:这是Spring提供的一个辅助类,它封装了SessionFactory的一些常用操作,如保存、更新、删除和查询等。使用HibernateTemplate可以简化代码,避免直接与Session对象打交道,减少出错的可能性。 ...

    spring hibernate ext项目

    2. 工具类和实用方法:可能提供了对Spring和Hibernate常用操作的封装,提高开发效率。 3. 模块化设计:可能将不同的功能模块化,便于代码重用和维护。 4. 性能优化:可能包含了针对Spring和Hibernate的性能调优策略...

    Spring2 Hibernate3集成

    这个实现类继承自`HibernateDaoSupport`,利用Spring提供的`HibernateTemplate`简化了Hibernate的调用。`HibernateDaoSupport`内部封装了SessionFactory,提供了一些常用的数据访问操作方法。 ##### 3. ...

    浅谈Spring+Hibernate整合(共16页).doc

    Spring 提供了 HibernateTemplate 类,它是一个简化版的 Hibernate Session 操作工具,自动处理了 Session 的创建、关闭以及异常处理,使得开发者无需在 DAO 层处理复杂的事务控制。此外,Spring 还支持使用 AOP 来...

    spring-Hibernate整合代码测试过程

    Spring通过其HibernateTemplate或SessionFactoryBean类提供了对Hibernate的集成支持,使得在Spring应用中使用Hibernate变得更加便捷。 2. **配置文件**:整合过程中,我们需要配置Spring的ApplicationContext.xml...

    spring整合Hibernate学习笔记.docx

    2. **使用 HibernateTemplate**: Spring 为 Hibernate 提供了一个抽象层,即 HibernateTemplate 类,它封装了 Session 的常用操作,如保存、更新、删除和查询等,同时处理了事务管理和异常转换。在 Spring 容器中...

    SSH(Struts+Spring+Hibernate)三层架构.

    2) **Spring与Hibernate的集成**:Spring提供了HibernateTemplate和SessionFactoryBean,帮助开发者更方便地使用Hibernate。Spring管理Hibernate的Session,提供事务控制,使得事务管理更为集中和透明。 **程序的包...

    Spring+Hibernate工具类所有增删改查

    HibernateTemplate是Spring对Hibernate的封装,它同样简化了数据库操作。与JdbcTemplate不同,HibernateTemplate使用了Hibernate ORM,可以直接操作对象,而不是SQL语句。它可以自动处理对象的持久化、加载、更新和...

    Spring3整合Hibernate4测试Demo

    4. **Spring的HibernateTemplate或HibernateDaoSupport**:Spring提供了HibernateTemplate和HibernateDaoSupport类,用于简化Hibernate操作。在这个Demo中,可能会使用它们来封装数据访问操作。 5. **Entity(实体...

Global site tag (gtag.js) - Google Analytics