首页 > 其他分享 >springboot Invalid bound statement (not found): com.elitel.xxx.dao.xxx 错误处理

springboot Invalid bound statement (not found): com.elitel.xxx.dao.xxx 错误处理

时间:2024-06-13 16:56:52浏览次数:12  
标签:xml elitel mapper xxx mybatis import 错误处理 com

如果这篇文章能给你带来帮助,不胜荣幸,如果有错误也请批评指正,一起学习,共同进步!

  今天给同事看了个问题,发现了这个问题,之前也遇见过,可是没有遇见这种情况,这次我记录一下。

  首先来说,造成这个错误的原因是什么。它是在Spring Boot应用程序中遇到“Invalid bound statement (not found)”错误,通常意味着你的MyBatis(或MyBatis-Spring-Boot-Starter)找不到某个SQL映射语句。

  由远到近,从无到有一点一点分析和排查

  1:首先判断是否生成了class文件,去target文件加下面去你相应的文件夹下面查看,是否有生成的mapper.xml  如果没有,重新编译一下,选择Build-->Rebuild Project  进行重新编译

  

   2: 如果第二种情况如果target 文件夹下面有数据,那么就去看mapper.xml 文件当中的    namespace  是否是你mapperDao 接口的相对路径,点击一下能否进去, 顺带着看看你的sql id 是不是跟方法名对应上了

  但是这种情况,大部分人应该是不会犯错误的,因为现在多为自动生成的。

  例如:UserMapper.java

  

package com.example.mapper;

import com.example.model.User;

public interface UserMapper {
    User findById(int id);
}

  UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
    <select id="findById" resultType="com.example.model.User">
        SELECT * FROM users WHERE id = #{id}
    </select>
</mapper>

 

  3:如果mapper.xml文件也没有问题,可以排查 xxxxApplication这个启动类里面的注解了

    看看你的mapperScan 是否能扫描到你的接口的包  。例如我的MyApplication 里面的mapperScan就是扫描到了mapper(Dao)下面  

    @MapperScan(value = {"com.example.mapper"}) 如果路径错误了请及时更正
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.example.mapper")
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

     4: 以上都没有问题可以排查配置文件,查看配置文件 当中配置的xml文件的路径是否正确

  applicaition.properties 当中是否写对了,例如:mybatis.mapper-locations=classpath*:mapper/*.xml

  application.yml当中这样写

mybatis:
  mapper-locations: classpath*:mapper/*.xml

 

  在这里需要注意的是,例如我同事之前写的是这种的

mybatis:
  mapper-locations: classpath*:mapper/db1/mysql/*.xml

     xml存放在resources 下是以这种形式展现的,那么这种是错误的。

  因为它在文件夹下面是这么展示的:

  

   我同事就是因为这种情况出现了错误。我排查到最后才发现。这块得使用文件夹父子目录的形式去呈现。而不是包名写成这样。

   至此大概率可以解决99%的关于这个的问题。如果还剩1%。当你确实都检查过了,还是不行,你可以选择两件事,第一关闭idea 然后重启.如果第一步不行,第二步:关闭电脑重启电脑。

   目前为止:我就关过一次电脑。希望大家没到关电脑的这一步。

  

 

  

 

 

标签:xml,elitel,mapper,xxx,mybatis,import,错误处理,com
From: https://www.cnblogs.com/sunrising/p/18246243

相关文章

  • PHP错误处理&异常处理方式小结
    PHP中的错误处理和异常处理是程序开发中非常重要的两个方面,它们可以帮助开发者识别和处理程序运行时出现的问题。以下是PHP中错误处理和异常处理的一些常见方式:错误处理错误级别:PHP定义了多种错误级别,如E_ERROR、E_WARNING、E_NOTICE等,通过设置错误级别,可以控制哪些错误会被......
  • 推送代码报错:fatal: unable to access 'https://gitlab.com/xxx/xxx.git/': The reque
    错误还原#gitlab使用Bitbucket注册登录,执行gitpush命令,使用token验证报错如下dogle@DESKTOP-KI961IKMINGW64/d/workspaces/xxx(main)$gitpushremote:HTTPBasic:Accessdenied.Theprovidedpasswordortokenisincorrectoryouraccounthas2FAenabledan......
  • 错误处理:fmt::Display & std::error::Error
    错误处理为什么要给错误类型(如JsonError)实现fmt::Displaytrait?在Rust中,fmt::Displaytrait允许你定义一个类型如何被格式化为人类可读的字符串。这通常用于错误信息、日志记录或任何其他用户输出。实现fmt::Display需要定义fmt函数,该函数写入特定格式的数据......
  • 要将dz_book_codebatch表的id字段从现有的大值(如3051571883xxxxxx1)重新设置为从1开始
    --备份数据CREATETABLEdz_book_codebatch_backupLIKEdz_book_codebatch;INSERTINTOdz_book_codebatch_backupSELECT*FROMdz_book_codebatch;--创建新表CREATETABLEdz_book_codebatch_newLIKEdz_book_codebatch;--设置自增初始值ALTERTABLEdz_book_codebatch_......
  • Could not transfer artifact xxx.yyy from/to maven-default-http-blocker (http://0
    maven依赖下载,报Couldnottransferartifactxxx.yyyfrom/tomaven-default-http-blocker(http://0.0.0.0/):Blockedmirrorforrepositories:yyyy之类的错,上网搜了下https://blog.csdn.net/oscar999/article/details/131237101,发现settings.xml配置了如下片段。<mirror>......
  • Java中的错误处理和日志记录:提升应用的健壮性和可维护性
            在Java开发中,有效的错误处理和日志记录是确保应用健壮性和可维护性的关键。通过恰当的异常处理和详尽的日志信息,开发者可以迅速定位和解决问题,同时提供程序运行的透明度。本文将探讨Java中的错误处理最佳实践和日志记录技术,包括常用的日志框架和配置方法。###......
  • network xxx was found but has incorrect label com.docker.compose.network set to
    在执行docker-composedown之后,再执行docker-composeup-d提示已有同名称标签的虚拟网卡  解决1、执行dockernetworkls命令展示所有的虚拟network2、执行dockernetworkrm<networkId>删除已存在的network3、再重新运行docker-composeup-d启动容器  扩......
  • 真机调试 Error:系统错误,xxx exceed max limit 2MB
    我们在使用微信开发者工具开发小程序、小游戏等应用时,往往会点击“真机调试”,微信扫描查看真实情况。但是会出现下面的报错提示,是因为主包体积超过了2MB。小程序有体积和资源加载限制,在微信小程序中,每个包不能超过2M,总计不能超过20M。解决方法大致有以下三种。最便捷的是第......
  • C标准库的错误处理机制
    引言在C语言编程中,错误处理是确保程序健壮性和稳定性的重要部分。C标准库提供了一系列工具和函数,帮助开发者检测、报告和处理错误。本文将详细探讨C标准库的错误处理机制,包括标准错误处理函数、异常处理、错误代码以及错误处理的最佳实践。第一章:C标准库中的错误处理基础C......
  • 编译器失败,错误代码为xxx
    原文链接:https://www.cnblogs.com/DHclly/p/5285748.html    https://blog.csdn.net/qq_42988836/article/details/123230630编译器失败,错误代码为xxx问题:出现编译器失败,等一会儿出现csc.exe无响应,错误代码不一定是255,是其他的也可以试试 我这边是一会自己就好了。但......