解决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日

相关文章

  • JSP页面中文传递参数使用escape编码

    JSP页面中文传递参数使用escape编码的完整攻略如下: 1. 什么是escape编码? escape编码是一种在传递URL参数时,将不安全字符转义成%xx的形式的编码方式。其中,XX是不安全字符在ASCII码表中相应的16进制数字。 2. escape编码的使用场景 在JSP页面中,如果我们需要传递中文参数给后台处理,如果我们不对这些中文参数进行编码,那…

    Java 2023年6月15日
    00
  • Java实现的对称加密算法3DES定义与用法示例

    Java实现的对称加密算法3DES定义与用法示例 1. 什么是3DES 3DES(Triple DES)是一种对称加密算法,常用于数据加密、数字签名等场景。它是DES(Data Encryption Standard)算法的增强版,采取3次DES步骤进行加密,因此也被称为TDEA(Triple Data Encryption Algorithm)。 3DES…

    Java 2023年5月18日
    00
  • Java8 如何正确高效的使用并行流

    Java8 如何正确高效的使用并行流 什么是并行流 在 Java8 中,我们可以使用 Stream API 提供的 parallel() 方法来创建并行流,将一个大任务划分成多个小任务并行执行。 如何使用并行流 小心使用 并行流虽然可以大大提高执行效率,但是在使用时需要小心,因为它并不是万能的,有时候反而会降低效率。以下是一些使用并行流时需要注意的点: 并行…

    Java 2023年5月18日
    00
  • 彻底理解Spring注解@Autowired实现原理

    下面是详细的攻略: 什么是@Autowired? @Autowired 是Spring框架提供的一种自动依赖注入的方式,它可以自动完成bean之间的注入,不需要手动的通过get/set方法注入。在Spring 中,Autowired 的实现依赖于Java 的反射机制,它可以将同一个应用上下文中所有的Bean 连接起来,甚至可以将Bean 依赖的外部库中的对象…

    Java 2023年5月19日
    00
  • 浅谈spring boot 1.5.4 异常控制

    在Spring Boot 1.5.4中,异常控制是非常重要的。它可以帮助我们快速定位问题,提高应用程序的可维护性和可用性。本文将浅谈Spring Boot 1.5.4异常控制,并提供两个示例。 1. 异常处理方式 在Spring Boot 1.5.4中,我们可以通过以下方式处理异常: 使用@ControllerAdvice注解处理全局异常。 @Control…

    Java 2023年5月15日
    00
  • Spring Security实现接口放通的方法详解

    Spring Security实现接口放通的方法详解 在使用Spring Security时,有时需要对一些接口进行放通,不需要进行权限验证,那么该如何实现呢?下面让我们一起来详细讲解Spring Security如何实现接口放通。 1. 使用antMatchers()方法实现接口放通 antMatchers()方法可以用来指定要放行的接口url,可以使用通…

    Java 2023年6月3日
    00
  • jsp 编程之@WebServlet详解

    JSP 编程之 @WebServlet 详解 在 JavaWeb 开发中,我们经常需要编写 Servlet 来完成各种需求,而在 Servlet 3.0 版本后,推出了 @WebServlet 注解,可以更方便地编写 Servlet,并且提高了代码的可读性和可维护性。 @WebServlet 注解详解 @WebServlet 注解的作用是将一个类声明为 Se…

    Java 2023年6月15日
    00
  • 监控微信小程序中的慢HTTP请求过程详解

    下面我来详细讲解“监控微信小程序中的慢HTTP请求过程详解”的完整攻略。 相关概念 在开始讲解之前,先介绍一些相关的概念: HTTP请求时间 表示从发出HTTP请求到收到响应所经过的时间。 DNS解析时间 表示从发出HTTP请求到获得目标服务器的IP地址所需的时间。 TCP连接时间 表示从发出HTTP请求到与目标服务器建立TCP连接所需的时间。 SSL/TL…

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