Mybatis的XML方式配置SQL失败问题

107 阅读1分钟

背景

黑马Java Web教程的TLIAS教学系统,员工管理的分页查询部分出现无法找到list问题。

错误原因

不满足Mybatis的XML配置的同包同名规则

解决方法

复制EmpMapper的路径,复制下来后为com/lwj/mapper这样的格式,在resources新建文件夹,命名为刚复制下来的com/lwj/mapper,粘贴上后成为com.lwj.mapper,再次测试,正常。

排查思路

  1. 将错误信息贴到chatGPT上,并未解决;

  2. 由于做Mybatis时这部分成功过,回顾了该部分的XML配置规则,包括:

    1. XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)
    2. XML映射文件的namespace属性为Mapper接口全限定名一致
    3. XML映射文件中sql语句的id与Mapper接口中的方法名一致,并保持返回类型一致。

    发现不满足同包同名条件,故新建包com.heima.mapper,将EmpMapper.xml放入该文件夹下。 再次测试依旧失败。

  3. 再次参考成功过的Mybatis部分的Test部分,照抄语句,发现问题不是连接不上数据库,而是找不到list语句;

  4. 突然想起当初成功时是直接复制path,将文件夹重命名为com/lwj/mapper后,自动变为com.lwj.mapper,成功。

总结

失败原因

  1. 这次与做Mybatis时间隔好几天,不记得当初的步骤;
  2. 理解不到位,不理解是Mapper是怎样连接数据库的。

排查优化

  1. 先问chatGPT没问题;
  2. 参照以前的成功经验,应当全面模拟,完全复现从前的步骤。