解决mybatis plus报错Invalid bound statement (not found):问题

 更新时间:2024年11月05日 15:41:53   作者:合格的程序员  
在使用MyBatis时遇到InvalidBoundStatement异常,常因多个MapperScan配置冲突或者包扫描路径设置错误,解决方法包括保留一个MapperScan声明、检查jar包冲突、确保命名空间和扫描路径正确,使用@TableId注解指定主键

mybatis plus报错Invalid bound statement (not found):

出现Invalid bound statement (not found) 异常

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.yk.yearmeet.modular.service.UserService.list

    at com.baomidou.mybatisplus.core.override.PageMapperMethod$SqlCommand.<init>(PageMapperMethod.java:261)
    at com.baomidou.mybatisplus.core.override.PageMapperMethod.<init>(PageMapperMethod.java:58)
    at com.baomidou.mybatisplus.core.override.PageMapperProxy.cachedMapperMethod(PageMapperProxy.java:70)
    at com.baomidou.mybatisplus.core.override.PageMapperProxy.invoke(PageMapperProxy.java:63)
    at com.sun.proxy.$Proxy72.list(Unknown Source)
    at com.baomidou.mybatisplus.extension.service.IService.list(IService.java:279)
    at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
    at com.baomidou.mybatisplus.core.override.PageMapperProxy.invokeDefaultMethod(PageMapperProxy.java:89)
    at com.baomidou.mybatisplus.core.override.PageMapperProxy.invoke(PageMapperProxy.java:58)
    at com.sun.proxy.$Proxy72.list(Unknown Source)
    at com.yk.yearmeet.oss.OssTest.serviceTest(OssTest.java:35)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)

上述日志详情。

解决方案

我是因为,在启动类和配置类都进行类MapperScaner的声明

保留一个配置就可以了,这俩配置冲突。

还有以下几种方向进行分析问题

检查是不是引入 jar 冲突

检查 Mapper.java 的扫描路径

方法一

在 Configuration 类上使用注解 MapperScan

@Configuration
@MapperScan("com.yourpackage.*.mapper")
public class YourConfigClass{
  ...
}

方法二

在Configuration类里面,配置MapperScannerConfigurer

@Bean
public MapperScannerConfigurer mapperScannerConfigurer(){
    MapperScannerConfigurer scannerConfigurer = new MapperScannerConfigurer();
    //可以通过环境变量获取你的mapper路径,这样mapper扫描可以通过配置文件配置了
    scannerConfigurer.setBasePackage("com.yourpackage.*.mapper");
    return scannerConfigurer;
}
  1. 检查命名空间是否正常? 检查包扫描路径typeAliasesPackage是否正常?如果扫描不到,MP 无法进行预注入
  2. 检查是否指定了主键?如未指定,则会导致 selectById 相关 ID 无法操作,请用注解 @TableId 注解表 ID 主键。当然 @TableId 注解可以没有!但是你的主键必须叫 id(忽略大小写)
  3. SqlSessionFactory不要使用原生的,请使用MybatisSqlSessionFactory

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java Map 按Key排序实例代码

    Java Map 按Key排序实例代码

    这篇文章主要介绍了Java Map 按Key排序实例代码的相关资料,需要的朋友可以参考下
    2017-02-02
  • SpringBoot3集成WebSocket的全过程

    SpringBoot3集成WebSocket的全过程

    WebSocket通过一个TCP连接在客户端和服务器之间建立一个全双工、双向的通信通道,使得客户端和服务器之间的数据交换变得更加简单,本文给大家介绍了SpringBoot3集成WebSocket的全过程,并有相关的代码示例供大家参考,需要的朋友可以参考下
    2024-05-05
  • Java判断本机IP地址类型的方法

    Java判断本机IP地址类型的方法

    Java判断本机IP地址类型的方法,需要的朋友可以参考一下
    2013-03-03
  • java中不定长参数的实例用法

    java中不定长参数的实例用法

    在本篇文章里小编给大家分享的是关于java中不定长参数的使用方法以及相关代码内容,有兴趣的朋友们可以学习参考下。
    2020-02-02
  • springboot实现发送邮件(QQ邮箱为例)

    springboot实现发送邮件(QQ邮箱为例)

    这篇文章主要为大家详细介绍了springboot实现发送邮件,qq邮箱代码实现邮件发送,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • java中Map如何根据key的大小进行排序详解

    java中Map如何根据key的大小进行排序详解

    这篇文章主要给大家介绍了关于java中Map如何根据key的大小进行排序的相关资料,有时候我们业务上需要对map里面的值按照key的大小来进行排序的时候我们就可以利用如下方法来进行排序了,需要的朋友可以参考下
    2023-09-09
  • Mybatis Plus使用条件构造器增删改查功能的实现方法

    Mybatis Plus使用条件构造器增删改查功能的实现方法

    这篇文章主要介绍了Mybatis-Plus使用条件构造器增删改查,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • Java 抽象类定义与方法实例详解

    Java 抽象类定义与方法实例详解

    这篇文章主要介绍了java 抽象类与接口的区别介绍的相关资料,需要的朋友可以参考下...
    2017-04-04
  • java多线程模拟抢红包功能

    java多线程模拟抢红包功能

    这篇文章主要为大家详细介绍了java多线程模拟抢红包功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • SpringBoot整合Swagger框架过程解析

    SpringBoot整合Swagger框架过程解析

    这篇文章主要介绍了SpringBoot整合Swagger框架过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05

最新评论