前记:这是很早之前自学学习myBatis时的笔记,内容比较基础,适合新手,内容基本是来自网络,如有雷同,敬请谅解!
1 Mapper编写的三种方法
1.1 Dao接口实现类继承SqlSessionDaoSupport
这种方法是原始的开发方法,即 需要编写 Dao接口、Dao实现类、配置文件。
1、 在sqlMapConfig.xml中配置映射文件的位置
<mappers>
<mapper resource="mapper.xml文件的地址" />
<mapper resource="mapper.xml文件的地址" />
</mappers>
2、 定义dao口
3、 dao接口实现类继承SqlSessionDaoSupport
dao接口实现类方法中可以this.getSqlSession()进行数据增删改查。
4、 spring 配置
<beanid=" "class="mapper接口的实现">
<propertyname="sqlSessionFactory" ref="sqlSessionFactory">
</property>
</bean>
1.2 使用org.mybatis.spring.mapper.MapperFactoryBean
此方法即mapper接口开发方法,只需定义mapper接口,不用编写mapper接口实现类。每个mapper接口都需要在spring配置文件中定义。
1、 在sqlMapConfig.xml中配置mapper.xml的位置
如果mapper.xml和mappre接口的名称相同且在同一个目录,这里可以不用配置
<mappers>
<mapper resource="mapper.xml文件的地址" />
<mapper resource="mapper.xml文件的地址" />
</mappers>
2、 定义mapper接口
3、 Spring中定义
<beanid=""class="org.mybatis.spring.mapper.MapperFactoryBean">
<propertyname="mapperInterface"value="mapper接口地址"/>
<propertyname="sqlSessionFactory"ref="sqlSessionFactory"/>
</bean>
1.3 使用mapper扫描器
此方法即mapper接口开发方法,只需定义mapper接口,不用编写mapper接口实现类。只需要在spring配置文件中定义一个mapper扫描器,自动扫描包中的mapper接口生成代代理对象。
1、 mapper.xml文件编写,
2、 定义mapper接口
注意mapper.xml的文件名和mapper的接口名称保持一致,且放在同一个目录
3、 配置mapper扫描器
<beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">
<propertyname="basePackage"value="mapper接口包地址"></property>
<propertyname="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
basePackage:扫描包路径,中间可以用逗号或分号分隔定义多个包
4、 使用扫描器后从spring容器中获取mapper的实现对象
如果将mapper.xml和mapper接口的名称保持一致且放在一个目录则不用在sqlMapConfig.xml中进行配置
例: