1). 有IOC 容器來管理 Hibernate 的 sessionFactory
2). 讓 Hibernate 使用上 Spring 的聲明式事務
1>jar 包 , c3p0 與 MySQL驅動
Hibernate:
C3p0 與 MySQL驅動:
2>添加 hibernate 的配置文件:
hibernate.cfg.xml:
<session-factory> <!-- 配置 hibernate 的基本屬性 --> <!-- 1. 數據源需配置到 IOC 容器中, 所以在此處不再需要配置數據源 --> <!-- 2. 關聯的 .hbm.xml 也在 IOC 容器配置 SessionFactory 實例時在進行配置 --> <!-- 3. 配置 hibernate 的基本屬性: 方言, SQL 顯示及格式化, 生成數據表的策略以及二級緩存等. --> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> <property name="hibernate.show_sql">true</property> <property name="hibernate.format_sql">true</property> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 配置 hibernate 二級緩存相關的屬性. --> </session-factory>
3>編寫了持久化類對應的.hbm.xml 文件。
![]()
(2) 加入 Spring
1>jar 包
2>加入 Spring 的配置文件
db.properties:
jdbc.user=rootjdbc.passWord=rootjdbc.driverClass=com.mysql.jdbc.Driverjdbc.jdbcUrl=jdbc:mysql:///spring7 jdbc.initPoolSize=5jdbc.maxPoolSize=10
applicationContext.xml:
<!-- 1.配置數據源: 導入資源文件 --> <context:property-placeholder location="classpath:db.properties"/> <bean id="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.initPoolSize}"></property> <property name="maxPoolSize"value="${jdbc.maxPoolSize}"></property> </bean> <!-- 2.配置hibernate的sessionFactory 實例:通過spring提供的LocalSessionFactoryBean 進行配置--> <bean id="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <!-- 2.1 配置數據源屬性 --> <property name="dataSource"ref="dataSource"></property> <!-- 2.2 配置hibernate配置文件的位置及名稱 --> <property name="configLocation"value="classpath:hibernate.cfg.xml"></property> <!-- 2.3 配置hibernate映射文件的位置及名稱,可以使用通配符 --> <property name="mappingLocations" value="classpath:spring/hibernate/entities/*.hbm.xml"></property> </bean> <!-- 3.配置Spring 的聲明式事務 --> <!-- 3.1 配置事務管理器 --> <bean id="transactionManager"class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory"ref="sessionFactory"></property> </bean> <!-- 3.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.3 配置事務切點,并把切點和事務屬性關聯起來 --> <aop:config> <aop:pointcut expression="execution(*spring.hibernate.service.*.*(..))" id="txPiontcut"/> </aop:config>(3) 整合.
3. 編寫代碼
源代碼文件:http://download.csdn.net/detail/QQ_26553781/9749257
新聞熱點
疑難解答