您的位置:首页 > 编程语言 > Java开发

【知识整理】Spring整合Hibernate详解

2017-04-14 10:13 483 查看
一.spring整合Hibernate整合什么?

1.由IOC容器来管理Hibernate的sessionFactory

2.让Hibernate使用上spring的声明式事务

二.整合步骤:

1.加入Hibernate

(1)导入jar包

(2)添加Hibernate的配置文件

1).数据源配置到IOC容器中,此处不需配置

2).关联的.hbm.xml在IOC容器中配置SessionFactory实例时进行配置

3).只需配置hibernate的基本属性:方言、sql显示及格式化、生成数据表的策略、二级缓存等

<hibernate-configuration>
<session-factory>
<!-- 配置hibernate的基本属性 -->
<!-- 1.数据源配置到IOC容器中,此处不需配置 -->
<!-- 2.关联的.hbm.xml在IOC容器中配置SessionFactory实例时进行配置 -->
<!-- 只需配置hibernate的基本属性:方言、sql显示及格式化、生成数据表的策略、二级缓存等 -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<!-- 配置hibernate二级缓存相关 -->

</session-factory>
</hibernate-configuration>
(3)编写持久化类对应的.hbm.xml文件

2.加入spring

(1)导入jar包

(2)添加spring的配置文件

<!-- 1.配置数据源 -->
<!-- 导入资源文件 -->
<util:properties id="config" location="classpath:config.properties"></util:properties>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="#{config.username}"></property>
<property name="password" value="#{config.password}"></property>
<property name="driverClass" value="#{config.driver}"></property>
<property name="jdbcUrl" value="#{config.url}"></property>
<property name="maxPoolSize" value="#{config.maxTotal}"></property>
<property name="initialPoolSize" value="#{config.initialSize}"></property>
</bean>
<!-- 2.配置hibernate的SessionFactory实例,通过spring提供的LocalSessionFactory进行配置 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<!-- 配置数据源 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 配置hibernate配置文件 -->
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
<!-- 配置hibernate映射文件,允许使用通配符 -->
<property name="mappingLocations" value="entity/*.hbm.xml"></property>
</bean>

<!-- 3.配置spring的声明式事务 -->
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 配置事务属性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true"/>
tx:method name="*"/>
</tx:attributes>
</tx:advice>
<!-- 配置事务切点,并把事务切点和事务属性关联 -->
<aop:config>
<aop:pointcut expression="excution(* springHibernate.service.*.*(..))" id="txPointcut"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
</aop:config>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate spring ioc jar java