2017.2.9 深入浅出MyBatis技术原理与实践-第八章 MyBatis-Spring(二)-----配置文件详解
2017-02-09 15:10
639 查看
[b]深入浅出MyBatis技术原理与实践-第八章 MyBatis-Spring(二) ------配置文件详解[/b]
配置分为几个部分:
mybatis中,使用SqlSessionFactory来产生SqlSession。
mybatis-spring中,使用SqlSessionTemplate来完成,它封装了对SqlSession的操作。所以通过SqlSessionTemplate可以得到Mapper。
配置示例如下:
其中配置文件mybatis.xml的配置示例如下:
(注意,因为Spring已经初始化了数据源,就是上面那个id为dataSource的bean,在mybatis的配置文件中就不需要再配置关于数据库的environments节点了。本来mybatis中,environments里配置了datasource和transactionManager等。)
构建方法1:
构建方法2:
这里的第二个参数,是执行器类型ExecutorType,他是一个枚举类,有三个值可以选。
注意,dao包下的类别忘记加上注解@Repository。
mybatis-spring使用时,mybatis的配置文件mybatis.xml不需要再配置DataSource,正如前面所言,因为spring已经配置好了,以bean的形式。
而事务管理,mybatis-spring是使用Spring AOP去管理的。所以同样的,mybatis的配置文件[b]mybatis.xml不需要再配置TransactionManager[/b],而是以bean的形式配置如下:
Spring AOP分为声明式事务和编程式事务,一般使用前者。
到此配置就结束了。
汇总一下,一共有两个文件,mybatis-spring.xml和mybatis.xml。
(1)mybatis-spring.xml
(2)mybatis.xml
8.2 MyBatis-Spring应用
8.2.1 概述
本文主要讲述通过注解配置MyBatis-Spring。配置分为几个部分:
配置数据源 配置SqlSessionFactory 配置SqlSessionTemplate 配置Mapper 事务处理
mybatis中,使用SqlSessionFactory来产生SqlSession。
mybatis-spring中,使用SqlSessionTemplate来完成,它封装了对SqlSession的操作。所以通过SqlSessionTemplate可以得到Mapper。
8.2.2 配置SqlSessionFactory
SqlSessionFactoryBean 1.dataSource 2.configLocation
配置示例如下:
<bean id="dataSource" class="..."> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:mybatis.xml"/> </bean>
其中配置文件mybatis.xml的配置示例如下:
(注意,因为Spring已经初始化了数据源,就是上面那个id为dataSource的bean,在mybatis的配置文件中就不需要再配置关于数据库的environments节点了。本来mybatis中,environments里配置了datasource和transactionManager等。)
<configuration> <settings>...<settings> <typeAliases>....<typeAliases> <mappers> <mapper resource="com\lyh\po\role.xml"/> <mappers> </configuration>
8.2.3 配置SqlSessionTemplate
有两种构建方法。构建方法1:
<bean id="SqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory"> </bean>
构建方法2:
这里的第二个参数,是执行器类型ExecutorType,他是一个枚举类,有三个值可以选。
<bean id="SqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory"> <constructor-arg name="1" value="BATCH/SIMPLE/REUSE"> </bean>
8.2.4 配置Mapper
<!-- 扫描basePackage下所有以@Repository标识的接口 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.lyh.dao"/> <property name="annotationClass" value="yorg.springframework.stereotype.Repository"/> <!--显示指定template的名字 <property name="sqlSessionTemplateBeanName" value=""/> --> <!--指定实现了何种接口,就被认为是映射器mapper <property name="markerInterface" value=""/> --> </bean>
注意,dao包下的类别忘记加上注解@Repository。
@Repository public interface UserDao{ .... }
8.2.5 配置事务
mybatis单独使用时,数据源DataSource和事务管理TransactionManager都是在environments节点下配置的。mybatis-spring使用时,mybatis的配置文件mybatis.xml不需要再配置DataSource,正如前面所言,因为spring已经配置好了,以bean的形式。
而事务管理,mybatis-spring是使用Spring AOP去管理的。所以同样的,mybatis的配置文件[b]mybatis.xml不需要再配置TransactionManager[/b],而是以bean的形式配置如下:
Spring AOP分为声明式事务和编程式事务,一般使用前者。
<!-- 使用annotation定义事务,声明式 --> <tx:annotation-driven transaction-manager="txManager"/> <!-- 事务管理器, Jdbc单数据源事务 --> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean>
到此配置就结束了。
汇总一下,一共有两个文件,mybatis-spring.xml和mybatis.xml。
(1)mybatis-spring.xml
1 配置数据源 2 配置SqlSessionFactory 3 配置SqlSessionTemplate 4 配置Mapper 5 事务处理
1 <bean id="dataSource" class="..."> 2 </bean> 3 4 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 5 <property name="dataSource" ref="dataSource"/> 6 <property name="configLocation" value="classpath:sqlMapConfig.xml"/> 7 </bean> 1 <bean id="SqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> 2 <constructor-arg index="0" ref="sqlSessionFactory"> 3 </bean> 1 <!-- 扫描basePackage下所有以@Repository标识的接口 --> 2 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 3 <property name="basePackage" value="com.lyh.dao"/> 4 <property name="annotationClass" value="yorg.springframework.stereotype.Repository"/> 5 <!--显示指定template的名字 6 <property name="sqlSessionTemplateBeanName" value=""/> 7 --> 8 <!--指定实现了何种接口,就被认为是映射器mapper 9 <property name="markerInterface" value=""/> 10 --> 11 </bean> 1 <!-- 使用annotation定义事务,声明式 --> 2 <tx:annotation-driven transaction-manager="txManager"/> 3 4 <!-- 事务管理器, Jdbc单数据源事务 --> 5 <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 6 <property name="dataSource" ref="dataSource"/> 7 </bean>
(2)mybatis.xml
1 <configuration> 2 <settings>...<settings> 3 <typeAliases>....<typeAliases> 4 <mappers> 5 <mapper resource="com\lyh\po\role.xml"/> 6 <mappers> 7 </configuration>
相关文章推荐
- 2017.2.9 深入浅出MyBatis技术原理与实践-第八章 MyBatis-Spring(二)-----配置文件详解
- 3MyBatis配置--深入浅出MyBatis技术原理与实践(笔记)
- spring、springmvc、mybatis整合文件配置详解
- Spring、Spring MVC、MyBatis整合文件配置详解
- Spring、Spring MVC、MyBatis整合文件配置详解
- spring+springmvc+mybatis中的xml配置文件详解
- 《深入浅出MyBatis技术原理与实战》——3. 配置
- ssm spring+springmvc+mybatis中的xml配置文件详解
- Spring、Spring MVC、MyBatis整合文件配置详解
- spring与mybatis整合配置文件详解
- Spring、Spring MVC、MyBatis整合文件配置详解
- Spring、Spring MVC、MyBatis整合文件配置详解
- Spring集成Mybatis配置映射文件方法详解
- Spring、Spring MVC、MyBatis整合文件配置详解
- Spring、Spring MVC、MyBatis 整合文件配置详解
- Spring、Spring MVC、MyBatis整合文件配置详解
- Spring、Spring MVC、MyBatis整合文件配置详解
- Spring、Spring MVC、MyBatis整合文件配置详解
- Spring、Spring MVC、MyBatis整合文件配置详解
- Spring、Spring MVC、MyBatis整合文件配置详解