1. 新建一个配置文件 sqlMapConfig-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--别名-->
<typeAliases>
<!--单独配置-->
<!-- <typeAlias type="com.hhm.domain.Account" alias="account"/>-->
<!--配置整个包下的别名-->
<package name="com.hhm.domain"/>
</typeAliases>
</configuration>
2. 将之前配置在 sqlMapConfig.xml 中的一些,移植到 applicationContext.xml 中
加入
<!--整合mybatis 配置-->
<!--整合mybatis 配置-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="dataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:sqlMapConfig-spring.xml" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.hhm.mapper" />
</bean>
3. 更改 service的实现
@Autowired
private AccountMapper accountMapper;
public void save(Account account) {
accountMapper.save(account);
}
public List<Account> findAll() {
return accountMapper.findAll();
}
=======================================================
中途会报错
Method com/mchange/v2/c3p0/impl/NewProxyResultSet.isClosed()Z is abstract
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
改成
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
如果还是报错,打开项目结构
把 com.mchange 的移到左边,c3p0的移除到右边
最后配置一下事务
<!--声明式事务控制-->
<!--平台事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!--配置事务增强-->
<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<!--事务的AOP织入-->
<aop:config>
<aop:advisor advice-ref="txAdvice" pointcut="execution(* com.hhm.service.impl.*.*(..))" />
</aop:config>