1、mybatis-spring.jar简介
Spring与Mybatis整合需要引入一个mybatis-spring.jar文件包,该整合包由Mybatis提供,可以从Mybatis官网下载。
mybatis-spring.jar提供了下面几个与整合相关的API
SqlSessionFactoryBean
为整合应用提供SqlSession对象资源
MapperFactoryBean
根据指定Mapper接口生成Bean实例
MapperScannerConfigurer
根据指定包批量扫描Mapper接口并生成实例
2、SqlSessionFactoryBean
在单独使用Mybatis时,所有的操作都是围绕SqlSession展开的,SqlSession是通过SqlSessionFactory获取的,SqlSessionFactory又是通过SqlSessionFactoryBuilder创建生成。
在Spring和Mybatis整合应用时,同样需要SqlSession,mybatis-spring.jar提供了一个SqlSessionFactoryBean生成SqlSessionFactory对象,为整合应用提供SqlSession对象。
SqlSessionFactoryBean在applicationContext.xml中定义格式如下
<!--SqlSessionFactoryBean的配置--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--指定连接资源--> <property name="dataSource" ref="myDataSource" /> <!--指定映射文件--> <property name="mapperLocations" value="classpath:org/tarena/entity/*.xml" /> </bean>
3、MapperFactoryBean
MapperFactoryBean作用是根据Mapper接口获取我们想要的Mapper对象,它封装了原有的session.getMapper()功能实现。
在定义MapperFactoryBean时,需要注入以下两个属性
一个是SqlSessionFactoryBean对象,用于提供SqlSession
一个是要返回Mapper对象的Mapper接口
MapperFactoryBean在applicationContext.xml中定义格式如下
<!--MapperFactoryBean的配置--> <bean id="deptMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <!--指定Mapper接口--> <property name="mapperInterface" value="org.tarena.mapper.DeptMapper" /> <!--指定SqlSessionFactoryBean对象--> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean>
4、MapperScannerConfigurer