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

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

clip_image001

3、sqlSessionFactory

在applicationContext.xml配置sqlSessionFactory和数据源

sqlSessionFactory在mybatis和spring的整合包下。

clip_image002

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

4.1 User.xml

clip_image003

在SqlMapconfig.xml中加载User.xml

clip_image004

4.2 dao(实现类继承SqlSessionDaoSupport)

clip_image005

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

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

让UserDaoImpl实现类继承SqlSessionDaoSupport

clip_image006

4.3 配置dao

在applicationContext.xml中配置dao。

clip_image007

4.4 测试程序

clip_image008

5、mapper代理开发

5.1 mapper.xml和mapper.java

clip_image009

5.2 通过MapperFactoryBean创建代理对象

clip_image010

此方法问题:

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

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

clip_image011

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

clip_image012

5.4 测试代码

clip_image013

5.5 测试结果

clip_image014

原文地址:https://www.cnblogs.com/doctorJoe/p/5292108.html