在学习使用springboot时,并不是太了解mybatis以及mybatis-plus之间的关系和概念,导致出现了一堆bug。
首先在使用mybatis时,pom依赖忘记依赖mybatis,导致在接口调试时报"message": "Invalid bound statement (not found): com.hxsoft.geoserver.mapper.ExportOutPutMapper.findById",
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.5</version> </dependency>
添加好了之后就可以正常调用接口了。
这里再补充下今天为了解决bug找到的各种解决方法:
1.检查xml文件所在package名称是否和Mapper interface所在的包名
2.UserDao的方法在UserDao.xml中没有,然后执行UserDao的方法会报此
3. UserDao的方法返回值是List<User>,而select元素没有正确配置ResultMap,或者只配置ResultType!
4. 如果你确认没有以上问题,请任意修改下对应的xml文件,比如删除一个空行,保存.问题解决
5.看下mapper的XML配置路径是否正确
接下来到了使用mybatis-plus,这里最大的坑是在yml里边配置的mybatis,因为一开始是使用mybatis,所以没有问题
mybatis:mapper-locations: classpath:mappers/*.xmltype-aliases-package: com.hxsoft.geoserver.entity
但是等到去使用mybatis-plus时候,就忽略了yml里边的配置问题,使用mybatis-plus需要再修改yml里的配置才能使用,如下
mybatis-plus:mapper-locations: classpath:mappers/*.xmltype-aliases-package: com.hxsoft.geoserver.entity
如果不进行修改,直接调用mybatis-plus中的方法,也会报和上面相同错误。