SSM项目之mappers标签

mappers标签标签的作用:为了让mybatis找到mapper.xml文件。

在后面的ssm整合项目中,有两种方式可以代替它

  • 一个是使用MapperScannerConfigurer

  • 一个是使用mapperLocation属性(位于SqlSessionFactoryBean中):mapperLocation属性,主要用于指定mapper.xml文件所处的位置。

MapperScannerConfigurer可以自动扫描到和接口同包同名的mapper.xml文件

mapperLocation属性可以指定扫描。

下面来个逆向思考!!!

在ssm项目中,将mapper.xml文件放进和dao接口不同的包中,这样的话MapperScannerConfigurer的自动扫描就扫描不到mapper.xml文件了。然后不使用mapperLocation属性,意思就是使用mappers标签来代替两个新方法,来验证一下。

但是结果却和我想的不一样!!!下面我来说我遇到的一些坑!!!

mappers标签的配置方式有4种

<!-- 1.使用相对于类路径的资源引用 -->
<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
</mappers>
<!-- 2.使用完全限定资源定位符(URL) -->
<mappers>
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>
</mappers>
<!-- 3.使用映射器接口实现类的完全限定类名 -->
<mappers>
  <mapper class="org.mybatis.builder.AuthorMapper"/>
  <mapper class="org.mybatis.builder.BlogMapper"/>
  <mapper class="org.mybatis.builder.PostMapper"/>
</mappers>
<!-- 4.将包内的映射器接口实现全部注册为映射器 -->
<mappers>
  <package name="org.mybatis.builder"/>
</mappers>
  1. 使用第3种和第4种方法需要和MapperScannerConfigurer一样,将mapper.xml文件和dao接口同名同包。

  2. 对于第一种方法,我们需要注意的是:/ 和 .

蜿蜒曲折的探究道路

对于指定类路径的资源引用的方式,也就是第一种方式,我将mapper.xml文件所在包放进了dao接口所在包的子包。结果idea提示说找不到mapper.xml文件,然后我又调了一会(将mapper.xml文件所在包改变位置后)可以正常运行,然后我就以为mapper.xml文件所在包不能放进了dao接口所在包的子包。他娘的,我又重新把mapper.xml文件所在包放进了dao接口所在包的子包,结果能正常运行了。沃日!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值