`

Spring 与 Hibernate集成

阅读更多
1)加载需要的properties配置文件
applicationContext.xml (spring2.5.6)
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" 
	parent="properties"
/>

<bean id="properties"
	class="org.springframework.beans.factory.config.PropertiesFactoryBean">
	<property name="locations">
		<list>
			<value>classpath:database.properties</value>
		</list>
	</property>
</bean>


applicationContext.xml (spring3.0.5)
<context:property-placeholder location="classpath:database.properties" />


2)数据源配置(c3p0) (仅供参考建议使用BoneCP)
applicationContext.xml
<bean id="dataSource"  
	class="com.mchange.v2.c3p0.ComboPooledDataSource"  
	destroy-method="close">  
	<property name="driverClass" value="${jdbc.driverClass}" />  
	<property name="jdbcUrl" value="${jdbc.url}" />  
	<property name="user" value="${jdbc.username}" />  
	<property name="password" value="${jdbc.password}" />  
	<property name="minPoolSize" value="${c3p0.minPoolSize}" />  
	<property name="maxPoolSize" value="${c3p0.maxPoolSize}" />  
	<property name="initialPoolSize" value="${c3p0.initialPoolSize}"/>  
</bean>


3)配置SessionFactory和事务管理器
applicationContext.xml
<bean id="sessionFactory"
	class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
	<property name="dataSource" ref="dataSource" />
	<property name="packagesToScan">
		<list>
			<value>org.yingzhuo.salary.domain</value>
		</list>
	</property>
	<property name="mappingResources">
		<list></list>
	</property>
	<property name="hibernateProperties">
		<props>
			<prop key="hibernate.dialect">${hibernate.dialect}</prop>
			<prop key="hibernate.show_sql">true</prop>
			<prop key="hibernate.format_sql">true</prop>
			<prop key="hibernate.hbm2ddl.auto">update</prop>
		</props>
	</property>
</bean>

<bean id="transactionManager"
	class="org.springframework.orm.hibernate3.HibernateTransactionManager">
	<property name="sessionFactory" ref="sessionFactory" />
</bean>


4)配置事务
<!--
<tx:advice id="txAdvice">
	<tx:attributes>
		<tx:method name="find*" read-only="true"/>
		<tx:method name="*" propagation="REQUIRED"/>
	</tx:attributes>
</tx:advice>

<aop:config>
	<aop:pointcut expression="execution(* *..dao.impl..*(..))" id="dao-pc"/>
	<aop:pointcut expression="execution(* *..service.impl..*(..))" id="service-pc"/>
	<aop:advisor advice-ref="txAdvice" pointcut-ref="dao-pc"/>
	<aop:advisor advice-ref="txAdvice" pointcut-ref="service-pc"/>
</aop:config>
-->

<tx:annotation-driven />

<aop:aspectj-autoproxy />



6)异常转换 hibernate体系结构异常 -> spring体系结构异常
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />

※要转换的组件上要加入@Repository标注

7)数据库信息
database.properties
#====================================================================================
# jdbc infomation
#   jdbc.dirverClass              : 驱动类名
#   jdbc.url                      : 数据库统一资源描述符
#   jdbc.username                 : 数据库登录用户名
#   jdbc.password                 : 数据库登录口令
#====================================================================================
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/income
jdbc.username=root
jdbc.password=root
#====================================================================================
# c3p0 setting
#   c3p0.minPoolSize              : 连接池最小保存的连接数量
#   c3p0.maxPoolSize              : 连接池最大保存的连接数量
#   c3p0.initialPoolSize          : 连接池被创建时保存的连接数量
#   c3p0.maxIdleTime              : 连接的最大空闲时间,超时不被使用则丢弃
#   c3p0.acquireIncrement         : 当连接耗尽时每次申请的连接数量
#   c3p0.idleConnectionTestPeriod : 每间隔一定秒数秒检查所有连接池中的空闲连接
#   c3p0.acquireRetryAttempts     : 定义在从数据库获取新连接失败后重复尝试的次数
#====================================================================================
c3p0.minPoolSize=5
c3p0.maxPoolSize=30
c3p0.initialPoolSize=10
#c3p0.maxIdleTime=60
#c3p0.acquireIncrement=3
#c3p0.idleConnectionTestPeriod=60
#c3p0.acquireRetryAttempts=30
#c3p0.breakAfterAcquireFailure=true
#====================================================================================
# hibernate setting
#   hibernate.dialect             : 方言
#====================================================================================
hibernate.dialect=org.hibernate.dialect.MySQLDialect
3
0
分享到:
评论

相关推荐

    Spring与Hibernate集成

    **Spring与Hibernate集成详解** 在Java企业级应用开发中,Spring和Hibernate是两个非常重要的框架。Spring是一个全方位的轻量级应用框架,提供了强大的依赖注入、AOP(面向切面编程)以及各种服务管理功能。而...

    Spring与Hibernate集成---声明式事务

    本文将深入探讨如何将Spring与Hibernate进行集成,并重点介绍声明式事务的配置与使用。 Spring框架是一个全面的企业级应用开发框架,它提供依赖注入(DI)和面向切面编程(AOP)等功能,简化了Java应用的复杂性。另...

    spring 与hibernate的集成

    接下来,我们会在`applicationContext.xml`中配置数据源,这是Spring与Hibernate集成的基础。数据源(`dataSource`)通常使用Apache Commons DBCP库,因为它提供了连接池功能,能有效管理数据库连接,提高性能。配置...

    Spring与Hibernate集成授课代码

    本"Spring与Hibernate集成授课代码"资源旨在教授如何将这两个框架整合在一起,实现高效的数据访问和业务逻辑处理。集成Spring和Hibernate能够帮助开发者充分利用两者的优点,比如Spring的事务管理与Hibernate的数据...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    **Spring与Hibernate集成** 1. **配置**: 配置Spring的`LocalSessionFactoryBean`,指定Hibernate的相关属性,如配置文件、实体类包等,生成SessionFactory。 2. **依赖注入**: 将SessionFactory注入到需要的地方...

    Struts,Spring与hibernate集成

    【Struts、Spring与Hibernate集成】是Java Web开发中常见的技术组合,用于构建高效、松耦合的MVC应用程序。这三大框架的集成使得开发者能够更好地管理数据访问、业务逻辑和用户界面,提高代码的可维护性和可测试性。...

    Spring与Hibernate集成中的session

    当Spring与Hibernate集成时,Spring通过其`HibernateTemplate`或`HibernateSessionManager`等类来管理和协调Hibernate的`Session`。`Session`是Hibernate的核心概念,它是与数据库交互的主要接口,用于保存、更新和...

    ssh集成jar包,支持spring集成Hibernate,spring集成struts2等

    - Spring与Hibernate集成,通常使用Spring的HibernateTemplate或HibernateDaoSupport,提供事务管理和数据访问抽象,使得代码更简洁,事务控制更方便。 - Spring与Struts2集成,Spring可以作为Struts2的Action的...

    spring和hibernate集成Demo

    **Spring与Hibernate集成** 集成Spring和Hibernate的关键在于如何在Spring中管理Hibernate的SessionFactory和Transaction。这通常通过以下步骤实现: 1. **配置Hibernate**: 创建Hibernate的配置文件(如hibernate...

    声明式事务控制spring+hibernate集成

    当Spring与Hibernate集成时,Spring可以负责事务的管理,而Hibernate则专注于数据持久化。 在"声明式事务控制,spring2.5+hibernate3集成源码"中,开发者可以学习如何配置Spring的事务管理器,以及如何在Hibernate...

    spring-hibernate 4个版本

    标题中的“spring-hibernate 4个版本”指的是四个不同阶段的Spring与Hibernate集成框架的版本。Spring是一个广泛使用的Java企业级应用开发框架,而Hibernate是一个流行的持久化框架,用于简化数据库操作。这两个库的...

    Spring、Hibernate集成

    **Spring与Hibernate集成详解** Spring框架以其强大的依赖注入(DI)和面向切面编程(AOP)能力,成为了Java企业级应用开发的事实标准。而Hibernate作为一款优秀的对象关系映射(ORM)工具,极大地简化了数据库操作...

    Struts2_Spring_Hibernate集成

    ### Struts2、Spring与Hibernate集成详解 #### 一、集成背景及意义 在现代Java Web开发中,Struts2、Spring与Hibernate是三个非常重要的框架。Struts2是一个MVC框架,主要用于处理用户请求并返回相应的视图;...

    spring集成hibernate所需jar包

    将Spring与Hibernate集成,可以充分利用两者的优点,实现高效且灵活的后端数据处理。 在"spring集成hibernate所需jar包"中,通常包含以下关键的库文件: 1. **Spring Framework**:这是Spring的核心组件,包括`...

    spring-hibernate3.jar.zip

    《Spring与Hibernate集成详解》 在Java开发领域,Spring框架和Hibernate ORM工具是两个非常重要的组件,它们分别处理了应用程序的依赖注入(DI)和对象关系映射(ORM)。Spring作为一个全面的轻量级框架,提供了...

    struts2 spring hibernate集成

    **Spring与Hibernate的集成** 常见的方式是使用Spring的HibernateTemplate或SessionFactoryBean,它们可以帮助我们管理SessionFactory和Session。Spring可以控制事务边界,实现事务的统一管理,确保数据的一致性。 ...

    Webwork+spring+hibernate集成实例

    在Webwork+Spring+Hibernate集成中,Spring通常作为整体架构的胶水,负责各组件的连接和协调。它可以管理Webwork的Action,通过依赖注入提供所需的Service和DAO。同时,Spring可以配置Hibernate SessionFactory,...

    Spring2 Hibernate3集成

    通过其强大的模块化设计,Spring能够轻松地与其他技术栈进行集成,如本案例中的Hibernate。 - **Hibernate框架**:作为一个开放源码的对象关系映射(ORM)解决方案,Hibernate提供了从Java类到数据库表的映射,以及...

Global site tag (gtag.js) - Google Analytics