-
添加MyBatis-Spring包
-
概念
- MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中
- 使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类
- 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中
- 而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中
-
安装
- <dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>x.x.x</version>
</dependency>
-
配置SqlSessionFactory
-
概念
- 直接在spring的上下文配置就可以
- 整合后,可以不需要单独的mybatis配置文件,全部的配置内容都可以在spring的上下文当中
-
在spring配置文件中
- <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 当mybatis的xml文件和mapper接口不在相同包下时,需要用mapperLocations属性指定xml文件的路径。
*是个通配符,代表所有的文件,**代表所有目录下 -->
<property name="mapperLocations" value="classpath:mapper/**/*.xml"/>
<!-- 加载mybatis的全局配置文件 -->
<property name="configLocation" value="classpath:mybatis/mybatis-config.xml" />
</bean>
-
注意
- dataSource是数据源配置,常用有DBCP,C3P0,Druid等
- mapperLocations是指接口xml的文件配置,如果不配置的话映射接口类文件(.java)和映射XML文件(.xml)需要放在相同的包下
mapperLocations好像和mybatis-config.xml的mappers功能相似,两个不需要同时配。
- configLocation不是必须的,如果没有全局配置文件可以去掉
-
配置数据映射器类
-
两种方法
-
方法一:利用xml来进行显示的逐一配置
- mapper很多的话就会很麻烦
-
方法二:利用mybatis-spring提供的自动扫描机制
- <mybatis:scan/>
-
方法二
- <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd">
<mybatis:scan base-package="org.mybatis.spring.sample.mapper" />
</beans>