spring-mybatis整合
第一步 添加依赖
第二步 在Spring中管理SqlSessionFactory
<!-- 注入数据源 -->
<property name="dataSource" ref="dataSource"/>
<!-- 设置mybatis核心配置文件路径(可选) -->
<property name="configLocation" value="classpath:/mybatis-config.xml" />
<!-- 配置mybatis xml映射文件位置(如果Mapper是用注解配置的,这里就不用设置此属性了) -->
<property name="mapperLocations" value="classpath:/mappers/*" />
</bean>
如果是注解的方式配置的Mapper,我们需要在Spring配置文件中添加mybatis的schema以支持mybatis注解扫描
<mybatis:scan base-package=“org.mybatis.spring.sample.mapper” />
或者这样配置@Configuration
@MapperScan(“org.mybatis.spring.sample.mapper”)
public class AppConfig {
// …
}
第三步 用Spring管理事务
和单独使用Spring时一样, 配加粗样式置Spring的声明式事务就可以了,mybatis会自动参与到spring的事务中
首先在pom中添加访问数据库的依赖
org.springframework
spring-jdbc
5.1.5.RELEASE
第一步配置数据源
<context:property-placeholder location=“classpath:jdbc.properties” />
${jdbc.characterEncoding}
**第二步初始化事务管理器**
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
**第三步配置事务AOP通知**
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="insert*" rollback-for="ArithmeticException" />
<tx:method name="query*" isolation="READ_COMMITTED" read-only="true" />
</tx:attributes>
</tx:advice>
**第四步定义AOP配置(将上面的通知和表达式组装到一起)**
<aop:config>
<aop:pointcut id="all_dao_method" expression="execution(* com.lanou3g.spring.transaction.dao.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="all_dao_method" />
</aop:config>