目录
- resource 相对路径(推荐)
- file 绝对路径(弃掉)
- class 类名
-
- 接口和xml名字不一样
- 接口和xml不在一个包里
- 使用要求
- package 包映射
-
- 接口和xml名字不一样
- 接口和xml不在一个包里
- 使用要求
四种方式
resource 相对路径(推荐)
在前面的案例里,都用的这个,就不说了
没什么BUG,路径写对就行了
推荐使用
file 绝对路径(弃掉)
绝对路径不安全,直接不考虑这个
class 类名
要写全的相对路径
当前结构
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN2XjlGcjcmbw5iM1EzNykDM0ITOwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
接口和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是一样的