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

yizhihongxing

解决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实现学生选课系统攻略 系统功能要求 学生登录、退出登录 查看所有课程列表 查询某门课程的详细信息 选课或退课 查看已选课程列表 数据库设计 选课系统的数据模型可以包含以下几个实体: 学生 课程 选课记录 可以使用MySQL作为数据库实现。下面是数据库表的设计: 表名 字段名 类型 约束 students id int 主键,自增长 username …

    Java 2023年5月19日
    00
  • Java实现文件上传的方法总结

    Java实现文件上传的方法总结 本文将介绍 Java 实现文件上传的相关知识,包括上传步骤、上传方式和实现流程等。 上传步骤 Java 实现文件上传包含以下步骤: 准备上传文件。将需要上传的文件准备好。 发送请求。将上传请求发送至上传服务器。 接受请求。上传服务器接收上传请求。 上传文件。将文件上传至上传服务器。 发送响应。上传服务器发送文件上传成功或失败的…

    Java 2023年5月20日
    00
  • JDK9的新特性之String压缩和字符编码的实现方法

    JDK9的新特性之String压缩和字符编码的实现方法 JDK9中,String类实现了对UTF-16字符集的压缩和解压缩,从而有效地减少了字符串在内存中的占用空间。本文将详细介绍String压缩和字符编码的实现方法。 String压缩原理 JDK9中,String压缩原理基于字符数据分析算法,将连续出现的ASCII字符或Latin-1字符转换为单个字节,从…

    Java 2023年5月20日
    00
  • fastjson 使用方法详细介绍

    Fastjson 使用方法详细介绍 Fastjson 是一款 Java 的 JSON 库,可以将 Java 对象与 JSON 互相转换。下面将详细介绍 Fastjson 的使用方法。 依赖引入 在使用 Fastjson 之前,需要先引入依赖。 Maven 依赖 在 pom.xml 文件中添加以下依赖: <dependency> <group…

    Java 2023年5月26日
    00
  • Spring纯Java配置集成kafka代码实例

    下面我将详细讲解如何使用Spring纯Java配置集成kafka,包括以下步骤: 添加依赖 配置Kafka 发送消息 接收消息 1. 添加依赖 首先,我们需要在项目的pom.xml中添加kafka相关的依赖,如下所示: <dependency> <groupId>org.springframework.kafka</groupI…

    Java 2023年5月19日
    00
  • Java Apache POI报错“NotOfficeXmlFileException”的原因与解决办法

    “NotOfficeXmlFileException”是Java的Apache POI类库中的一个异常,通常由以下原因之一引起: 文件格式错误:如果文件不是Office Open XML格式,则可能会出现此异常。例如,可能会尝试读取旧版的Microsoft Office文件或其他非Office Open XML格式的文件。 以下是两个实例: 例1 如果文件格…

    Java 2023年5月5日
    00
  • JDK源码分析之String、StringBuilder和StringBuffer

    JDK源码分析之String、StringBuilder和StringBuffer 什么是String、StringBuilder和StringBuffer String是Java中的一个不可变字符序列,使用final char[] value来存储数据,也就是说,一旦被初始化,就不能再对其进行修改。 StringBuilder和StringBuffer实现…

    Java 2023年5月26日
    00
  • Bootstrap 下拉多选框插件Bootstrap Multiselect

    Bootstrap Multiselect 是一种基于 Bootstrap 框架的下拉多选框插件,可以帮助开发人员快速创建具有多选能力的下拉菜单控件。 安装 Bootstrap Multiselect Bootstrap Multiselect 可以通过以下几种方式进行安装: 1. 使用 CDN 在 HTML 文件中引入以下两个脚本即可: <scrip…

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