解决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>
阅读剩余 31%

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

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

相关文章

  • Java设计模式之java策略模式详解

    Java设计模式之Java策略模式详解 什么是Java策略模式? Java策略模式是一种行为型设计模式,它定义了算法族,即一组具有相同目的和不同实现的算法,让它们之间可以相互替换。这个模式让算法的变化独立于使用算法的客户端,从而实现算法行为的变化而无需更改使用算法的客户端。 Java策略模式的三个角色 Java策略模式一般涉及到如下三个角色: Context…

    Java 2023年5月19日
    00
  • Java参数传递及值传递实现原理详解

    Java参数传递及值传递实现原理详解 Java中的参数传递涉及到两个概念:引用传递和值传递。本文将详细讲解Java参数传递及值传递的实现原理。 引用传递 引用传递是指将实参的地址作为形参传递。在Java中,在方法调用时,如果参数是对象类型,那么实参传递给形参的是对象地址的副本。也就是说,实参和形参指向同一块内存地址。 示例: public class Per…

    Java 2023年5月26日
    00
  • 浅谈hibernate之映射文件VS映射注解

    如何选择使用Hibernate的映射文件或映射注解?这是Hibernate初学者常常疑惑的问题。本文将深入浅出地介绍这个话题,帮助读者更好地掌握Hibernate的使用方法。 什么是映射文件? Hibernate的映射文件定义了Java类和数据库表之间的映射关系。映射文件只是一个XML格式的文件,用于Hibernate根据属性及其映射关系创建数据表和对象。H…

    Java 2023年5月19日
    00
  • 微信语音上传 下载功能实例代码

    让我来详细讲解“微信语音上传下载功能实例代码”的完整攻略。 1. 背景介绍 在现代的 Web 应用程序中,上传和下载文件通常是一项非常基本的功能。微信作为一款非常流行的社交软件,也提供了语音上传和下载的功能。本文将介绍如何实现微信语音上传和下载功能,并给出相应的示例代码。 2. 实现思路 为了实现微信语音上传和下载功能,需要了解微信的相关 API 和协议。下…

    Java 2023年5月19日
    00
  • SpringBoot 如何使用Dataway配置数据查询接口

    下面是 SpringBoot 如何使用 Dataway 配置数据查询接口的攻略。 什么是 Dataway? Dataway 是由阿里巴巴集团开源的一款数据查询接口配置工具,它可以通过简单的配置生成符合 RESTful 风格的 HTTP 接口,从而快速完成前后端分离架构下的数据查询接口的开发。 SpringBoot 如何使用 Dataway 配置数据查询接口?…

    Java 2023年5月20日
    00
  • Java字符串编码解码性能提升的技巧分享

    Java字符串编码解码性能提升的技巧分享 标签: Java, 字符串编码, 解码, 性能优化, 技巧 在实际的Java开发中,字符串编码和解码是很常见的操作。如果不注意这些操作的性能优化,可能会影响整个应用的性能。本文将介绍一些Java字符串编码解码性能提升的技巧。 1. 使用StringBuilder代替字符串拼接 在Java中,字符串是不可变的,也就是说…

    Java 2023年5月20日
    00
  • Java代码混淆的作用是什么?

    Java代码混淆是一种将Java源码中的可读性相关信息和关键词进行随机映射和替换,以达到混淆恶意软件的源代码、减少程序被破解或反编译的效果。 使用Java代码混淆有以下几个重要作用: 防止程序被破解:通过混淆Java代码,可以抵御逆向工程等高级攻击技术,降低程序被破解的风险。 保证商业利益:商业软件一旦被破解,会带来严重的经济损失。Java代码混淆可以使破解…

    Java 2023年5月11日
    00
  • java随机数生成具体实现代码

    当我们需要在程序中产生随机数时,Java API提供了几种不同的方法:Math类中的静态方法和java.util.Random类。 Math类生成随机数的实现代码 Math类中提供了一个random()方法来产生任意范围的随机数。通过random()方法返回一个0.0到1.0之间的随机数,对于大于1.0的范围,可以通过数学运算来实现。下面是一个产生1-100…

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