Mybatis学习记录(八)----Mybatis整合Spring

时间:2021-08-14 11:54:05

1、整合思路

需要spring通过单例方式管理SqlSessionFactory。

spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession。(spring和mybatis整合自动完成)

持久层的mapper都需要由spring进行管理。

2、整合环境

创建一个新的java工程

jar包:

mybatis3.3.0的jar包

Spring4.1.2的jar包

mybatis和spring的整合包:早期ibatis和spring整合是由spring官方提供,mybatis和spring整合由mybatis提供。

Mybatis-spring-1.2.4.jar

Mybatis学习记录(八)----Mybatis整合Spring

3、sqlSessionFactory

在applicationContext.xml配置sqlSessionFactory和数据源

sqlSessionFactory在mybatis和spring的整合包下。

Mybatis学习记录(八)----Mybatis整合Spring

4、原始dao开发(和spring整合后)

4.1 User.xml

Mybatis学习记录(八)----Mybatis整合Spring

在SqlMapconfig.xml中加载User.xml

Mybatis学习记录(八)----Mybatis整合Spring

4.2 dao(实现类继承SqlSessionDaoSupport)

Mybatis学习记录(八)----Mybatis整合Spring

dao接口实现类需要注入SqlSessoinFactory,通过spring进行注入。

这里spring声明配置方式,配置dao的bean:

让UserDaoImpl实现类继承SqlSessionDaoSupport

Mybatis学习记录(八)----Mybatis整合Spring

4.3 配置dao

在applicationContext.xml中配置dao。

Mybatis学习记录(八)----Mybatis整合Spring

4.4 测试程序

Mybatis学习记录(八)----Mybatis整合Spring

5、mapper代理开发

5.1 mapper.xml和mapper.java

Mybatis学习记录(八)----Mybatis整合Spring

5.2 通过MapperFactoryBean创建代理对象

Mybatis学习记录(八)----Mybatis整合Spring

此方法问题:

需要针对每个mapper进行配置,麻烦。

5.3 通过MapperScannerConfigurer进行mapper扫描(建议使用)

Mybatis学习记录(八)----Mybatis整合Spring

由于配置了自动扫描,因此不需要再在SqlMapConfig中配置Mapper的扫描。

Mybatis学习记录(八)----Mybatis整合Spring

5.4 测试代码

Mybatis学习记录(八)----Mybatis整合Spring

5.5 测试结果

Mybatis学习记录(八)----Mybatis整合Spring