`

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

分享到:
评论

相关推荐

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

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

    AnyFo - Util - AnyFoDao :Spring + Hibernate整合通用的DAO层类

    本类封装了Spring提供的HibernateTemplate,从提供了对数据的各种操作,因此,本类尤其适合用Spring + Hibernate整合后进行系统开 发时使用。 AnyFoAction功能概述 AnyFoDao中的那个类,提供多个方法来对...

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

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

    Spring_Hibernate集成

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

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

    * HibernateTemplate是对session的轻量级的封装 * 默认事务回滚异常是RuntiimeException(包括所有继承RuntimeException的子类).普通异常不回滚 * 在编写业务逻辑方法时,最好将异常一直往上抛出,由表示层处理...

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

    第二 spring3.1 不知道为什么不没有了HibernateTemplate的封装,又是一个很悲剧的事情! 谷歌百度后,说spring3.1还没有对hibernate4.1开始支持,具体情况不知道,有知道告诉我一下!呵呵 不懂! 我这里有测试的demo...

    开源框架 Spring Gossip

    简单邮件 HTML 邮件 内嵌图片或附档 排程 Spring则对 java.util.Timer提供了抽象封装,让您可以善用Spring的容器管理功能,而Spring对Quartz进行了封装,让它在使用上更加方便。 使用 ...

    Hibernate使用技巧汇总

    HibernateTemplate对Hibernate Session操作进行了封装,而 HibernateTemplate.execute方法则是一封装机制的核心 *在spring的配置文件里,移植了整个hibernate.cfg.xml的内容。

    基于SpringJDBC的轻量级ORM框架sborm.zip

    3、实现一套简单的ORM(直接使用spring rowmapper,insert自己实现),可以基于对象进行crud和相对复杂(感觉比hibernate强大一点)的sql操作; 4、基于对象指定查询的字段,大部分时候可以忘掉表结构进行业务...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    由于J2EE的开源的框架中提供了MVC模式实现框架Struts、对象关系模型中的Hibernate 的框架及拥有事务管理和依赖注入的Spring。利用现存框架可以更快开发系统。所以选择Java技术作为blog 的开发工具。 为了增加系统的...

Global site tag (gtag.js) - Google Analytics