mybatis学习笔记 3.4 XML配置——mappers(映射器)


四种方式

resource 相对路径(推荐)

在前面的案例里,都用的这个,就不说了
没什么BUG,路径写对就行了
推荐使用

file 绝对路径(弃掉)

绝对路径不安全,直接不考虑这个

class 类名

要写全的相对路径

当前结构

在这里插入图片描述

接口和xml名字不一样

mybatis的xml配置文件修改

<mappers>
    <mapper class="com.study.mybatis.dao.PlayersMapper"></mapper>
</mappers>

执行,报错:

java.lang.ClassNotFoundException: Cannot find class: 
    com.study.mybatis.dao.PlayersMapper

现在改名,把PlayersDao.java改成PlayersMapper.java
mapper xml里namespace也要改成PlayersMapper

再执行,成功

接口和xml不在一个包里

上面已经把名字改成一样的了,然后再把结构改一下
在这里插入图片描述

执行,报错:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 
    com.study.mybatis.dao.PlayersMapper.getPlayersList

使用要求

接口和xml必须同名
且必须在同一个包

package 包映射

当前结构
在这里插入图片描述

在同一个包下,且命名也一样
mybatis的xml配置文件修改

<mappers>
	<package name="com.study.mybatis.dao"/>
</mappers>

运行成功,没有问题

接口和xml名字不一样

改名
在这里插入图片描述

执行报错了:

org.apache.ibatis.binding.BindingException: 
    Invalid bound statement (not found): 
        com.study.mybatis.dao.PlayersMapper.getPlayersList

再改名:
在这里插入图片描述

执行报错,一样:

org.apache.ibatis.binding.BindingException: 
    Invalid bound statement (not found): 
        com.study.mybatis.dao.PlayersDao.getPlayersList

接口和xml不在一个包里

结构:
在这里插入图片描述

执行报错,和命名不同报的错一样:

org.apache.ibatis.binding.BindingException: 
    Invalid bound statement (not found): 
        com.study.mybatis.dao.PlayersDao.getPlayersList

改个名:
在这里插入图片描述

执行报错,还是一样:

org.apache.ibatis.binding.BindingException: 
    Invalid bound statement (not found): 
        com.study.mybatis.dao.PlayersDao.getPlayersList

使用要求

接口和xml必须同名
且必须在同一个包
和class是一样的


版权声明:本文为nothingavenger原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。