spring整合hibernate
一、整合什么?
1、使用ioc容器管理sessionFactory
2、在hibernate中使用上spring的声明式事务
二、整合
1、加入spring
①加入spring的jar包和spring的配置文件
2、加入hibernate
①加入hibernate的jar包和的配置文件
②在hibernate配置文件中加入hibernate的基本配置(方言、sql、生成表方式、二级缓存),注意:也可以都配置在spring的配置文件中
3、整合
①配置数据源
<!-- 配置数据源 --> <context:property-placeholder location="classpath:db.properties" /> <bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="${jdbc.user}"></property> <property name="password" value="${jdbc.password}"></property> <property name="driverClass" value="${jdbc.driverClass}"></property> <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property> <property name="initialPoolSize" value="${jdbc.initialPoolSize}"></property> <property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property> </bean>
②配置sessionFactory
使用LocalSessionFactoryBean来实现
<!-- 使用spring管理sessionFactory --> <bean name="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> <property name="mappingLocations" value="classpath:com/hy/spring/hibernate/entity/*.hbm.xml"></property> </bean>
包含三个部分:数据源、hibernate的配置文件configLocation、hibernate的映射文件mappingLocations
③配置声明式事务
<!-- 1、配置事务管理器 --> <bean name="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 2、配置事务属性 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="get*" read-only="true" /> <tx:method name="*" /> </tx:attributes> </tx:advice> <!-- 3、配置事务切点,并且把事务和切点关联起来 --> <aop:config> <aop:pointcut expression="execution(* com.hy.spring.hibernate.service.*.*(..))" id="txPointcut"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/> </aop:config>
包含三点:a、配置事务管理器;b、配置事务属性;c、配置事务切点,并把事务和切点关联起来
注意:在使用切面的时候有可能报错,少一个类,需要加入jar包:aspectjweaver.jar
三、代码演示:
略。。
邮箱:wangh_2@sina.com