解决mybatis-plus通用mapper调用报错:Invalid bound statement

解决mybatis-plus通用mapper调用报错“Invalid bound statement”的完整攻略如下:

问题背景

在使用mybatis-plus时,常常会使用它提供的通用Mapper进行数据库操作。但是,有时候会出现以下错误报告:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.mapper.UserMapper.selectById

这个错误通常发生在使用通用Mapper进行查询操作时,提示找不到对应的mapper方法。

解决方法

  1. 检查mapper接口和xml文件是否存在

首先,确认Mapper接口和xml文件是否存在。例如,以查询用户信息为例:

public interface UserMapper extends BaseMapper<User> {
    User selectById(Long id);
}
<select id="selectById" resultType="com.example.entity.User">
    select * from user where id=#{id}
</select>

在运行时,mybatis-plus根据这个Mapper接口的方法名字来查找对应的xml文件中的sql语句。因此,请确保mapper的接口和xml文件都存在且名称一致。

  1. 声明Mapper接口的@Mapper注解

在Mapper接口中添加@Mapper(Type.class)注解声明。例如:

@Mapper
public interface UserMapper extends BaseMapper<User> {
    User selectById(Long id);
}

这个注解声明了一个Mapper类型,告诉Mybatis-Plus要去哪里查找对应的xml文件。在注解中可以指定对应的xml文件,从而避免了在xml文件中使用namespace配置。

示例

下面是两个示例,用于演示解决“Invalid bound statement (not found)”报错的方法。

示例1:给UserMapper接口添加@Mapper注解

在UserMapper接口上添加@Mapper注解,声明这是一个Mapper类型。

@Mapper
public interface UserMapper extends BaseMapper<User> {
    User selectById(Long id);
}

示例2:检查mapper接口和xml文件是否存在

确认UserMapper.xml文件中是否存在selectById标签,并且mapper接口名称和xml文件名称一致。例如:

<mapper namespace="com.example.mapper.UserMapper">
    <select id="selectById" resultType="com.example.entity.User">
        select * from user where id=#{id}
    </select>
</mapper>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决mybatis-plus通用mapper调用报错:Invalid bound statement - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java如何基于反射获取对象属性信息

    获取Java对象的属性信息是Java语言中很常见的一个需求,在Java中通过反射机制可以很方便的完成。本篇攻略将会详细讲解如何基于反射获取Java对象的属性信息。 反射机制 Java的反射机制是指在程序运行时获取类的相关信息,可以获取类名、属性、方法等相关信息。Java反射机制是通过Java.lang.reflect包中的类和接口实现的,主要应用在框架开发、…

    Java 2023年5月26日
    00
  • 基于maven使用IDEA创建多模块项目

    下面是基于maven使用IDEA创建多模块项目的完整攻略。 1. 创建父项目 打开IDEA,选择File -> New -> Project。 在左侧栏选择Maven,并且在右侧方框中勾选Create from archetype选项。 在弹出的对话框中选择maven-archetype-quickstart,并点击Next。 填写GroupId…

    Java 2023年5月19日
    00
  • java使用CountDownLatch等待多线程全部执行完成

    Sure!下面是我为您详细讲解如何在Java中使用CountDownLatch等待多线程全部执行完成的完整攻略。 什么是CountDownLatch CountDownLatch是Java中的一个同步工具类,它允许一个或多个线程等待直到在其他线程完成的一组操作执行完毕。它主要是用于多线程协同,一个线程需要等待多个其它线程完成某个操作之后才能继续执行。 Cou…

    Java 2023年5月19日
    00
  • Java中自己如何实现log2(N)

    在Java中,使用Math库中的log10方法可以计算任何数的对数。但是,如果要计算一个数的以2为底的对数(即log2(N)),则需要进行一些额外的计算。下面是Java中实现log2(N)的完整攻略: 方法一:利用Math库中的log10方法和换底公式将log2(N)转换为log10(N) / log10(2) public static double lo…

    Java 2023年5月26日
    00
  • 详解Java Ajax jsonp 跨域请求

    详解Java Ajax jsonp 跨域请求 什么是跨域请求 在浏览器请求数据时,如果请求的数据地址与原始页面的协议、域名或端口不同,就会发生跨域请求。由于浏览器有同源限制的限制,不同域名之间的请求会受到阻止。 解决方案 为了解决跨域请求的限制,可以使用 jsonp 方式进行异步请求。jsonp通过script标签来获取数据,script标签不受同源限制,因…

    Java 2023年5月26日
    00
  • Springboot项目异常处理及返回结果统一

    下面是关于Spring Boot项目异常处理及返回结果统一的完整攻略: 1. 异常处理的重要性 在Web开发中,异常是常见的问题。除开系统自带的异常外,还有业务系统自己抛出的异常。如果不及时有效的处理异常,系统将会毫无提示地将异常信息直接暴露给用户,这对系统的安全性以及可维护性均会产生不利影响。 因此,良好的异常处理机制非常重要。Spring Boot为我们…

    Java 2023年5月27日
    00
  • java中几种常见的排序算法总结

    对于“java中几种常见的排序算法总结”的攻略,我们可以通过以下步骤来进行详细讲解: 一、排序算法简介 在介绍具体的排序算法之前,我们需要了解一些基础概念。排序算法是指对一个数据集合进行排序的过程,其中涉及到的一些重要概念包括: 稳定性:如果存在相同的元素,排序前和排序后这些元素的相对位置是否发生了改变。稳定的排序算法会保留相同元素之间的顺序关系,不稳定的排…

    Java 2023年5月19日
    00
  • springboot @Async 注解如何实现方法异步

    SpringBoot提供了@Async注解来实现方法异步,在这个注解的加持下,这些被注解的方法将执行在单独的线程中。这可以减少应用程序的响应时间,提高应用程序的吞吐量。 下面,我们来实现一个简单的示例来说明@Async注解的使用方法。 第一步,导入必须的依赖 在pom.xml文件中,我们需要导入spring-boot-starter-web和spring-b…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部