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
3、sqlSessionFactory
在applicationContext.xml配置sqlSessionFactory和数据源
sqlSessionFactory在mybatis和spring的整合包下。
4、原始dao开发(和spring整合后)
4.1 User.xml
在SqlMapconfig.xml中加载User.xml
4.2 dao(实现类继承SqlSessionDaoSupport)
dao接口实现类需要注入SqlSessoinFactory,通过spring进行注入。
这里spring声明配置方式,配置dao的bean:
让UserDaoImpl实现类继承SqlSessionDaoSupport
4.3 配置dao
在applicationContext.xml中配置dao。
4.4 测试程序
5、mapper代理开发
5.1 mapper.xml和mapper.java
5.2 通过MapperFactoryBean创建代理对象
此方法问题:
需要针对每个mapper进行配置,麻烦。
5.3 通过MapperScannerConfigurer进行mapper扫描(建议使用)
由于配置了自动扫描,因此不需要再在SqlMapConfig中配置Mapper的扫描。