`

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

分享到:
评论

相关推荐

    Spring4.0+Hibernate4.0+Struts2.3整合案例

    1、Spring 3.x 对 Hibernate 4.x 不提供 HibernateDaoSupport,所以在dao的实现层注入SessionFactory 2、报错:org.hibernate.HibernateException: No Session found for current thread 意思是必须在...

    springboot2.0多数据源集成hibernate配置hibernateDaoSupport示例

    springboot2.0多数据源集成hibernate配置hibernateDaoSupport, dao层继承hibernateDaoSupport, 不使用jpa方式。

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

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

    Struts2+Spring+Hibernate+Ehcache+AJAX+JQuery+Oracle 框架集成用户登录注册Demo工程

    6.Hibernate继承 HibernateDaoSupport。 7.Spring+Junit4单元测试,优点:不会破坏数据库现场,等等。 2)Demo 导入说明: 1.Eclipse Encoding:GBK 2.Eclipse 导入后可能需要在 Xml Catalog 手动添加:ehcache-...

    spring-hibernate3.jar

    其中包含有org.springframework.orm.hibernate3.support.HibernateDaoSupport.class,

    spring框架配置bean的高级属性

    可以利用hibernate tools生成相关映射文件已经po对象、dao对象,dao也可以自己手动编写,无非就是实现crud,如果通过继承hibernate提供的HibernateDaoSupport,则可以更轻松的实现 关键就在于配置文件,下面看一个...

    Spring2.5和Hibernate3集成--学习spring aop ioc

    Spring2.5和Hibernate3集成 采用声明式事务 1.声明式事务的配置 * 配置sessionFactory * 配置事务管理器 * 配置事务的传播特性 * 配置哪些类哪些方法使用事务 2.编写业务逻辑方法 * 继承...

    HibernateDaoSupport 源码

    Spring hibernate3. HibernateDaoSupport 源码

    ssh(structs,spring,hibernate)框架中的上传下载

     TfileDAOHibernate通过扩展Spring提供的Hibernate支持类HibernateDaoSupport而建立,HibernateDaoSupport封装了HibernateTemplate,而HibernateTemplate封装了Hibernate所提供几乎所有的的数据操作方法,如execute...

    Spring整合Hibernate 详解.doc

    6.5 Spring整合Hibernate 6.6 Spring提供的DAO支持 6.5.2 管理Hibernate的SessionFactory 6.5.3 使用HibernateTemplate 6.5.4 使用HibernateCallBack 6.5.6 使用IoC容器组装各种组件 6.5.7启动web容器读取xml配置...

    spring 理解文件HibernateDaoSupport

    相同点:在applicationConext.xml中 配置datasource--&gt;sessionfacrtory from dataSource---&gt;HibernateTransactionManager(impl)--&gt;PROPAGATION_REQUIRED事物隔离级别 (2).不同点: HibernateDaoSupport: 在...

    Spring+Hibernate实现增删改查的两种方法

    Spring+Hibernate实现增删改查的两种方法,HibernateTemplate实现和HibernateDaoSupport实现

    spring-boot 集成hibernate

    spring-boot 集成hibernate,使用druid数据库连接池,dao继承HibernateDaoSupport 的实现,

    Spring4整合Hibernate5详细步骤

    本篇文章主要介绍了Spring4整合Hibernate5详细步骤,具有一定的参考价值,有兴趣的同学可以了解一下

    Spring_Hibernate集成

    Hibernate Session的轻量级封装 * 默认情况下运行期异常才会回滚(包括继承了RuntimeException子类),普通异常是不会滚的 * 编写业务逻辑方法时,最好将异常一直向上抛出,在表示层(struts)处理 * 关于事务...

    Spring的学习笔记

    一、 开始使用annotation配置Spring 16 二、 @Autowired、@Qualifier 16 (一) @Autowired 16 (二) @Qualifier 17 三、 @Resource(重要、推荐) 17 (一) JSR-250 17 (二) @Resource 17 四、 @Componet 18 五、 @Scope...

    struts2.3.x+spring3.1.x+hibernate3.6 demo

    谷歌百度后,说spring3.1还没有对hibernate4.1开始支持,具体情况不知道,有知道告诉我一下!呵呵 不懂! 我这里有测试的demo 基本上大家能看懂! 还有就是我这里习惯把service和dao按照不同的模块进行划分,比较...

    SpringSide的Hibernate封装

    SpringSide对Hibernate做了三层封装: 第一层:HibernateGenericDao,基于spring的HibernateDaoSupport,但加入了分页函数与各种Finder函数,并使用泛型避免了返回值强制类型转换。 第二层:HibernateEntityDao,...

    spring_MVC源码

    18. class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"&gt; 19. &lt;property name="dataSource" ref="dataSource" /&gt; 20. &lt;property name="hibernateProperties"&gt; 21. &lt;props&gt; 22...

    springboot集成hibernate

    springboot集成hibernate无jpa,在dao中使用SessionFactory操作数据库

Global site tag (gtag.js) - Google Analytics