1.在applicationContext.xml中配置sessionFactory的bean
<!-- 配置sessionfactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 配置c3p0数据库连接池 -->
<property name="dataSource">
<bean class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 链接数据库基本配置 -->
<property name="driverClass" value="${driverClass}"/>
<property name="jdbcUrl" value="${jdbcUrl}"/>
<property name="user" value="${user}"/>
<property name="password" value="${password}"/>
<!-- 其他配置 -->
<property name="initialPoolSize" value="3"></property>
<property name="maxPoolSize" value="5"></property>
<property name="minPoolSize" value="3"></property>
<property name="acquireIncrement" value="2"></property>
<property name="maxStatements" value="8"></property>
<property name="maxStatementsPerConnection" value="5"></property>
<property name="maxIdleTime" value="20"></property>
</bean>
</property>
<!-- 读取hibernate配置文件 -->
<property name="configLocation" value="classpath:hibernate.cfg.xml"/>
</bean>
这个bean中配置连接池时value的值取自外部的propertise文件,因此要在applicationContext.xml中增加配置如下
<!-- 读取外部properties文件 -->
<context:property-placeholder location="classpath:jdbc.properties"/>
jdbc.properties文件放在工程的src目录下(注意每条value值的后面一定不能有空格)
driverClass = com.mysql.jdbc.Driver
jdbcUrl = jdbc\:mysql\://localhost\:3306/wxl
user = root
password = 111
2.在applicationContext.xml中配置声明式事物(使用基于注解的方式)
<!-- 声明式事物管理配置 -->
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 使用注解方式 -->
<tx:annotation-driven transaction-manager="txManager"/>
附:测试用例
@Component
public class StuService {
@Resource
private SessionFactory sf;
@Transactional
public void saveStu(){
Session session=sf.getCurrentSession();
session.save(new Student());
session.save(new Student());
}
}
spring2.5.6必导jar包
1.核心包spring.jar
2.依赖包
aopectj下的aspectjrt.jar aspectjweaver.jar(aop用)
cglib下的cglib-nodep-2.1_3.jar(aop动态代理用)
jakarta-commons下的commons-logging.jar(日志包)
hibernate3.6.0必导jar包
1.核心包hibernate3.jar
2.依赖包
lib/required目录下全部包(必须)
hibernate-jpa-2.0-api-1.0.0.Final。jar包
c3p0-0.9.1.jar(配置c3p0连接池使用)