1 准备工作
1.1 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 扫描service包下所有使用注解的类型 -->
<context:component-scan base-package="www.test.baidu.service"/>
<util:properties
id="jdbcProperty" location="classpath:jdbc.properties">
</util:properties>
<!--<util:properties id="jdbcProperty" location="WEB-INF/classes/jdbc.properties">-->
<!--</util:properties>-->
<!-- 数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="#{jdbcProperty['jdbc.driver']}"/>
<property name="jdbcUrl" value="#{jdbcProperty['jdbc.url']}"/>
<property name="user" value="#{jdbcProperty['jdbc.username']}"/>
<property name="password" value="#{jdbcProperty['jdbc.password']}"/>
<property name="maxPoolSize" value="#{jdbcProperty['c3p0.maxPoolSize']}"/>
<property name="minPoolSize" value="#{jdbcProperty['c3p0.minPoolSize']}"/>
<property name="autoCommitOnClose" value="#{jdbcProperty['c3p0.autoCommitOnClose']}"/>
<property name="checkoutTimeout" value="#{jdbcProperty['c3p0.checkoutTimeout']}"/>
<property name="acquireRetryAttempts" value="#{jdbcProperty['c3p0.acquireRetryAttempts']}"/>
</bean>
<!-- 配置SqlSessionFactory对象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource"/>
<!-- 扫描model包 使用别名 在pojo.xml中可以不使用全称 -->
<property name="typeAliasesPackage" value="www.longshine.baidu.dao"/>
<!-- 扫描sql配置文件:mapper需要的xml文件 -->
<!-- <property name="mapperLocations" value="classpath:cn/baidu/template/dao/*.xml"/>-->
</bean>
<!-- 配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 注入sqlSessionFactory -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<!-- 给出需要扫描Dao接口包 -->
<property name="basePackage" value="www.longshine.baidu.dao"/>
</bean>
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置基于注解的声明式事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- 引入其它配置文件 -->
<!-- 定时任务 -->
<!-- <import resource="applicationContext-springtask.xml"/>-->
<!-- redis缓存 -->
<!-- <import resource="applicationContext-redis.xml"/>-->
<!-- spring aop -->
<!-- 启动对@AspectJ注解的支持 -->
<!-- <aop:aspectj-autoproxy/>-->
</beans>
1.2 jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
#数据库地址
jdbc.url=jdbc:mysql://localhost:3306/practies?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
#用户名
jdbc.username=root
#密码
jdbc.password=123456
#最大连接数
c3p0.maxPoolSize=30
#最小连接数
c3p0.minPoolSize=10
#关闭连接后不自动commit
c3p0.autoCommitOnClose=false
#获取连接超时时间
c3p0.checkoutTimeout=10000
#当获取连接失败重试次数
c3p0.acquireRetryAttempts=2
1.3项目结构
截图是service层的测试类
1.4 依赖添加
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
2 运行测试