标签:not ann 代码 管理器 建议 marker use 执行器 路径
mybatis-spring 主要是为了解决 spring3.0 中支持 mybatis3.0
1 mybatis-spring 主要包含以下几个部分
在mybatis中构建 SqlSessionFactory 对象,让它来产生 SqlSession, 在 mybatis-spring 项目中 SqlSession 是通过SqlSessionTemplate 来实现的,它提供了对SqlSession 的封装。
所以通过 SqlSessionTemplate 可以得到 Mapper。
2 构建 SqlSessionFactory ,它的作用是生成 SqlSession 。一般地,只需配置两个参数 1)数据源 2)mybatis 配置文件路径
3 配置 SqlSessionTemplate ,是一个模板类,通过调用 SqlSession 来完成工作,所以在 mybatis-spring 项目中,它是一个核心类。
构建方法有两种
1)只有一个参数 SqlSessionFactory
2)两个参数 一个是 SqlSessionFactory 另一个是执行器类型。
方法一,代码如下
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory"/> </bean>
方法二,两个参数
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory"/> <constructor-arg index="1" value="BATCH"/> </bean>
ExecutorType 的取值范围是:SIMPLE/REUSE/BATCH
如果同时设置了SqlSessionFactory 和 SqlSessionTemplate ,系统会使 SqlSessionTemplate 覆盖掉 SqlSessionFactory 。
4 配置 Mapper ,大部分场景中不建议使用 SqlSessionFactory 和 SqlSessionTemplate。而采用Mapper 接口编程的方式。关键类:MapperFactoryBean
在 mybatis 中,Mapper只是一个接口,而不是一个实现类。它是由 mybatis 通过动态代理的形式生成代理对象去运行,spring 没有办法生成实现类。
mybatis-spring 提供了 MapperFactoryBean 作为中介,可以配置他来获得我们需要的 Mapper。配置 MapperFactoryBean 有3个参数 MapperInterface,SqlSessionFactory,SqlSessionTemplate
4.2 使用扫描的方式配置Mapper,关键类:MapperScannerConfigurer,他的可配属性
5 配置事务,spring 和 mybatis结合后,是使用Spring AOP 去管理事务的。配置也很简单。
<!-- 支持注解 --> <context:annotation-config/> <!-- 事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 声明式事务 --> <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
标签:not ann 代码 管理器 建议 marker use 执行器 路径
原文地址:http://www.cnblogs.com/zhaopengcheng/p/7151946.html