天天看点

mybatis学习笔记 3.4 XML配置——mappers(映射器)resource 相对路径(推荐)file 绝对路径(弃掉)class 类名package 包映射

目录

  • resource 相对路径(推荐)
  • file 绝对路径(弃掉)
  • class 类名
    • 接口和xml名字不一样
    • 接口和xml不在一个包里
    • 使用要求
  • package 包映射
    • 接口和xml名字不一样
    • 接口和xml不在一个包里
    • 使用要求

四种方式

resource 相对路径(推荐)

在前面的案例里,都用的这个,就不说了

没什么BUG,路径写对就行了

推荐使用

file 绝对路径(弃掉)

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

class 类名

要写全的相对路径

当前结构

mybatis学习笔记 3.4 XML配置——mappers(映射器)resource 相对路径(推荐)file 绝对路径(弃掉)class 类名package 包映射

接口和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不在一个包里

上面已经把名字改成一样的了,然后再把结构改一下

mybatis学习笔记 3.4 XML配置——mappers(映射器)resource 相对路径(推荐)file 绝对路径(弃掉)class 类名package 包映射

执行,报错:

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

使用要求

接口和xml必须同名

且必须在同一个包下

package 包映射

当前结构

mybatis学习笔记 3.4 XML配置——mappers(映射器)resource 相对路径(推荐)file 绝对路径(弃掉)class 类名package 包映射

在同一个包下,且命名也一样

mybatis的xml配置文件修改

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

运行成功,没有问题

接口和xml名字不一样

改名

mybatis学习笔记 3.4 XML配置——mappers(映射器)resource 相对路径(推荐)file 绝对路径(弃掉)class 类名package 包映射

执行报错了:

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

再改名:

mybatis学习笔记 3.4 XML配置——mappers(映射器)resource 相对路径(推荐)file 绝对路径(弃掉)class 类名package 包映射

执行报错,一样:

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

接口和xml不在一个包里

结构:

mybatis学习笔记 3.4 XML配置——mappers(映射器)resource 相对路径(推荐)file 绝对路径(弃掉)class 类名package 包映射

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

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

改个名:

mybatis学习笔记 3.4 XML配置——mappers(映射器)resource 相对路径(推荐)file 绝对路径(弃掉)class 类名package 包映射

执行报错,还是一样:

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

使用要求

接口和xml必须同名

且必须在同一个包下

和class是一样的

继续阅读