`

spring对hibernate的简单封装(hibernateDaoSupport)(xml/annotation)

 
阅读更多

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

分享到:
评论

相关推荐

    韩顺平spring 雇员管理系统hibernate jar包

    5. **Spring与Hibernate整合**:Spring提供了HibernateTemplate和HibernateDaoSupport等工具类,简化了Hibernate的使用。通过@Autowired或XML配置,可以将SessionFactory注入到DAO或Service类中,实现依赖注入。 6....

    spring hibernate 参考手册.rar

    - **DAO(Data Access Object)**:Spring通过`HibernateTemplate`或`HibernateDaoSupport`简化DAO层的编写,提供事务封装。 4. **Spring JDBC与Hibernate的比较** - **灵活性**:Hibernate提供更高级别的对象...

    使用配置文件对DAO层封装具有分页功能的S2SH整合实例_好资源0分送

    此文档作为对《使用Annotation并对DAO层封装具有分页功能的S2SH整合实例》的后续补充,重点在于通过XML配置文件而非注解的方式来完成框架间的整合。 #### 目标读者 本文档适用于具备一定的Java开发基础,特别是对...

    spring java

    HibernateTemplate是Spring早期提供的一个工具类,它封装了对Hibernate Session的操作,提供了事务管理和异常转换等功能。通过`spring_integration_hibernate3_template`文件,我们可以学习如何配置...

    sshFrame(struts2.3.4+spring3.1+heibernate4.0+annotation零配置

    在这个"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下 &lt;property name="hibernate.connection.username"&gt;root&lt;/property&gt; &lt;property name="hibernate.connection....

    Spring系列面试题129道(附答案解析)

    - 使用Spring的HibernateTemplate和HibernateDaoSupport类。 - 使用LocalSessionFactoryBean来配置SessionFactory。 - 使用@Transaction注解进行声明式事务管理。 36、列举spring支持的事务管理类型。 Spring支持的...

    ssh数据库基本操作封装

    SSH(Struts + Spring + Hibernate)是一个经典的Java Web开发框架,用于构建企业级应用程序。在这个主题中,“ssh数据库基本操作封装”指的是将常用的数据库交互功能,如增删改查(CRUD),通过SSH框架进行封装,...

    spring笔记

    通过以上步骤,可以实现一个简单的Spring+Hibernate应用,实现用户的基本CRUD操作。此练习不仅帮助理解和掌握了Spring框架的核心概念,还能进一步熟悉Spring与Hibernate的整合流程及具体实现细节。

    spring框架案例学习文档笔记

    - **HibernateDaoSupport**:提供了一个支持Hibernate的基类。 #### SSH整合 - **整合步骤**: 1. **加入jar包**:确保项目中包含了Spring、Struts2和Hibernate的所有必要jar包。 2. **整合Spring与Hibernate**...

    SSH快速开发框架设计

    - **Hibernate Annotation**:利用注解进行实体类映射,替代了传统的XML配置方式,提高了代码的可读性和可维护性。 - **PJLFilter**:提供数据压缩功能,支持多种压缩算法,有效减少网络传输量,提升系统性能。 ###...

    Spring之ORM模块代码详解

    这个类提供了对HibernateTemplate的便捷访问,HibernateTemplate是Spring提供的一个工具类,用于封装和执行HQL查询、保存、更新和删除操作。这样,我们就可以避免直接操作Hibernate的Session和Transaction,让Spring...

Global site tag (gtag.js) - Google Analytics