`

Spring整合Hibernate获得HIbernateTemplate之HibernateDaoSupport

阅读更多

通过继承HibernateDaoSupport来获得HibernateTemplate(最好使用IoC来注入)

 

dao层代码

package com.lbx.dao.impl;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.lbx.dao.LogDAO;
import com.lbx.model.Log;

public class LogDAOImpl extends HibernateDaoSupport implements LogDAO {

	public void save(Log log) {

		//this.save(log);
		this.getHibernateTemplate().save(log);
		//用于测试回滚,默认的时候是RuntimeException
		//throw new RuntimeException("运行的时候出错了");
	}

}

 

 

 

beans.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/tx 
           http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
	<context:annotation-config />
	<context:component-scan base-package="com.lbx" />
	<tx:annotation-driven transaction-manager="txManager" />

	<bean
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<value>classpath:jdbc.properties</value>
		</property>
	</bean>
	
	<bean id="dataSource" destroy-method="close"
		class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="${jdbc.driverClassName}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
	</bean>

	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		
		<!-- 
		<property name="annotatedClasses">
			<list>
				<value>com.lbx.model.User</value>
				<value>com.lbx.model.Log</value>
			</list>
		</property>
		 -->
		 <property name="packagesToScan">
			<list>
				<value>com.lbx.model</value>
			</list>
		</property>
		
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
				<prop key="hibernate.show_sql">true</prop>
			</props>
		</property>
	</bean>

	<tx:advice id="txAdvice" transaction-manager="txManager">
		<tx:attributes>
			<tx:method name="get*" read-only="true" />
			<tx:method name="add*" propagation="REQUIRED" />
		</tx:attributes>
	</tx:advice>


	<aop:config>
		<aop:pointcut id="fooServiceOperation"
			expression="execution(public * com.lbx.service..*.*(..))" />
		<aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation" />
	</aop:config>


	<bean id="txManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	
	<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	
	<bean id="dao" abstract="true">
		<property name="hibernateTemplate" ref="hibernateTemplate"></property>
	</bean>
	
	<bean id="logDao" parent="dao" class="com.lbx.dao.impl.LogDAOImpl">
	</bean>
	<bean id="u" parent="dao" class="com.lbx.dao.impl.UserDAOImpl">
	</bean>
	<bean id="userService" class="com.lbx.service.UserService">
		<property name="userDAO" ref="u"></property>
		<property name="logDAO" ref="logDao"></property>
	</bean>

</beans>

 

分享到:
评论

相关推荐

    Spring3整合Hibernate4测试Demo

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

    spring整合hibernate的jar包

    整合Spring和Hibernate时,通常会通过Spring的DataSource、SessionFactory和HibernateTemplate或HibernateDaoSupport来管理数据库连接和事务。Spring通过AOP在数据库操作周围创建事务边界,保证了数据的一致性。同时...

    Spring,Hibernate整合源码

    4. **HibernateTemplate与HibernateDaoSupport**:Spring提供了HibernateTemplate和HibernateDaoSupport,它们为DAO层提供了便捷的操作方法,如save、update、delete、find等,同时处理了事务和异常。 5. **JPA集成...

    使用spring整合hibernate和struts时所要用到的所有jar包

    - Spring通过其`HibernateTemplate`或`HibernateDaoSupport`类简化了对Hibernate的操作,提供了事务管理。你可以定义一个Hibernate配置文件,其中包含数据源、SessionFactory等信息。 - 使用Spring的`...

    Spring整合HIbernate

    3. **DAO(Data Access Object)抽象**:Spring的HibernateTemplate和HibernateDaoSupport为编写DAO层代码提供了便利,简化了与Hibernate Session的交互。 4. **基于注解的配置**:Spring 3.0及以上版本支持基于...

    spring与hibernate的整合

    在 Spring 中使用 Hibernate 通常有两种方式:一是使用 HibernateTemplate 或 HibernateDaoSupport,另一种是直接使用 Hibernate 的原生 API。这里我们关注后者,通过 Spring 注入 SessionFactory 到 DAO 类中,然后...

    Spring整合Hibernate 详解.doc

    Spring整合Hibernate是现代Java开发中常见的一种技术组合,利用Spring框架的强大功能来管理和协调Hibernate的持久化操作。Spring为Hibernate提供了全面的集成方案,简化了DAO(Data Access Object)的开发,同时也...

    spring整合hibernate与struts2所需jar包

    5. **整合步骤**:通过Spring的HibernateDaoSupport或HibernateTemplate类,可以轻松地在Struts2的Action中调用Hibernate的方法进行数据操作。Spring会自动管理SessionFactory的生命周期,并在必要时开启和提交事务...

    JavaEE spring和Hibernate整合(没有hibernate.cfg.xml)

    但在Spring中,我们可以利用Spring的`LocalSessionFactoryBean`替代`hibernate.cfg.xml`,将Hibernate的配置信息整合到Spring的配置文件中,这样可以更好地实现依赖注入和管理。 1. **Spring配置Hibernate** - 在...

    spring+hibernate整合简单示例

    2. **SessionFactory和Session的管理**:Spring提供了一个HibernateTemplate或HibernateDaoSupport类,帮助我们管理SessionFactory和Session,使得在Spring环境下使用Hibernate变得更加方便。这些类会自动处理...

    spring+hibernate+flex整合

    此外,Spring的HibernateTemplate或HibernateDaoSupport类提供了一套便捷的方法,方便调用Hibernate的CRUD操作。 **Spring与Flex整合** Spring与Flex的整合主要涉及到服务端(Spring)与客户端(Flex)的通信。通常...

    spring+hibernate整合

    整合 Spring 和 Hibernate 的主要目的是利用 Spring 的管理能力来控制 Hibernate 的 Session,避免直接在业务逻辑代码中进行数据库会话的创建和关闭,从而提高代码的可测试性和可维护性。下面将详细介绍整合过程中的...

    整合Spring + hibernate所需的jar包

    此外,为了方便使用,Spring提供了HibernateTemplate或HibernateDaoSupport类,它们提供了对Hibernate Session的一系列便捷操作。然而,更现代的做法是使用Spring Data JPA,它提供了一种更加简洁的API,允许开发者...

    spring3 hibernate3 整合

    3. **数据访问对象(DAO)**:Spring的DAO支持包括定义DAO接口和实现类,以及使用HibernateTemplate或HibernateDaoSupport作为基础类,简化与Hibernate Session的交互。 4. **实体管理**:在Hibernate中,实体类是...

    springmvc整合hibernate所需jar包

    - **Spring配置**:创建Spring的配置文件(如`applicationContext.xml`),配置DataSource、SessionFactory、HibernateTemplate或HibernateDaoSupport,以及Spring MVC的相关配置,如DispatcherServlet、...

    struts2和spring和Hibernate整合的jar包

    4. **整合Spring与Hibernate**:在Spring的配置文件中,配置SessionFactory和HibernateTemplate或HibernateDaoSupport,以便Spring能够管理Hibernate的session。 5. **整合Struts2与Spring**:使用Spring-Struts2的...

    hibernateTemplate和HibernateDaoSupport

    hibernateTemplate 和 HibernateDaoSupport 是 Spring 框架中针对 Hibernate 数据库访问层的两个重要组件,它们简化了基于 Hibernate 的数据操作,使得开发者能够更高效地进行 CRUD(创建、读取、更新、删除)操作。...

    使用MyEclipse下整合Spring和Hibernate

    在`applicationContext.xml`中配置Hibernate的DAO层,使用Spring的`HibernateTemplate`或`HibernateDaoSupport`。例如: ```xml ``` 在DAO实现类中注入SessionFactory,并使用`HibernateTemplate`进行数据库操作...

    SSH整合学习笔记之spring与hibernate整合(二)之c3p0

    最后,为了在业务逻辑中使用Hibernate,我们可以创建一个DAO层,通过Spring的`HibernateTemplate`或`HibernateDaoSupport`抽象类来简化操作。例如: ```java @Service public class MyEntityDaoImpl implements ...

Global site tag (gtag.js) - Google Analytics