今天新来的小弟弟调试代码时发现控制台报错了,自己调试了半天也没找到原因,该排查的方案也都排查了,就是解决不了,无奈找到了我,我也照着网上的方案排查了一遍,确实不行,然后就自己分析了一下,这个问题已经两个人问过我了,还是在此记录一下吧。
控制台报错:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.suntang.storage.mapper.PersonCertificateInfoMapper.getBasePerson
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.<init>(MybatisMapperMethod.java:51)
分析一下该错误出现原因:invalid bound statement (not found),这个报错算是经常遇到的错误了,问题的本质就是mapper接口和mapper.xml文件没有映射起来。即在mybatis中dao接口与mapper配置文件在做映射绑定的时候出现问题,简单说,就是接口与xml要么是找不到,要么是找到了却匹配不到。
出现的这个错误的根本原因就是一下几种情况:
我们的配置如下:
mybatis-plus:
#配置cxml文件所在路径
mapper-locations: classpath*:mybatis/mapper/*.xml
#配置映射类所在包路径
type-aliases-package: com.suntang.entity;com.suntang.*.entity
type-enums-package: com.suntang.enums
照着方案比对了一遍之后发现所有信息都是对的, 检查了一下xml路径也是对的呀,那为什么会出现这个报错了?我突然想到我不久前遇到的一个画面:
具体的操作就是:
1.复制mybatis.mapper文件夹全路径:
D:\amyProject\police-analysis-server\police-storage\src\main\resources\mybatis.mapper
2.再看看配置路径:
classpath*:mybatis/mapper/*.xml
细心的朋友会发现端倪
没错!!!!!!!!!!!!就是这个文件路径导致的(点跟斜杠一定要注意一下),就是自己平时在建文件夹的时候如下图这样建,导致生成的文件路径为mybatis.mapper
但是如果一层一层建的话就不会出现这个问题
正确路径:mybatis\mapper
究其根本还是因为xml的路径不正确,所以大家开发的时候一定要细心一点,也不要盲目的去找问题原因,要分析问题,所以最后问题解决啦!!!!!