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
新闻热点
疑难解答