Idea中运行Maven/Gradle项目报错Invalid bound statement (not found): com.xx.dao.SysSettingMapper.findAll()

本文主要是介绍Idea中运行Maven/Gradle项目报错Invalid bound statement (not found): com.xx.dao.SysSettingMapper.findAll(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
    • 1.Maven/Gradle默认的web目录结构
  • 问题
  • 原因
  • 解决
    • Maven中
    • Gradle中
  • 总结
  • 其它

前言

1.Maven/Gradle默认的web目录结构

若我们没有在pom.xml/build.gradle中显示设置resources/sourceSets,则Maven/Gradle默认的项目目录结构:

srcmainjava   			// source 根目录resources 		// resources 根目录testjava			// test source 根目录resources  		// test resources 根目录

在gradle中,等效于在build.gradle里有以下配置:

sourceSets {main {java {srcDirs = ['src/main/java']}resources {srcDirs = ['src/main/resources']}}test {java {srcDirs = ['src/test/java']}resources {srcDirs = ['src/test/resources']}}
}

当然,我们可以不使用默认的目录结构,这是就需要自定义sourceSets,譬如:

sourceSets {main {java {srcDirs = ['src/java']}resources {srcDirs = ['src/resources']}}
}

若我们只是想在默认的sourceSets的基础上新增一些目录,就可以这么写:

sourceSets {main {java {srcDir 'otherDir/src/main/java'}}
}

问题

Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xx.dao.SysSettingMapper.findAllat org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:189)at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:43)at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:58)at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:51)at com.sun.proxy.$Proxy38.findAll(Unknown Source)at com.xx.service.impl.SysSettingServiceImpl.findAllSysSetting(SysSettingServiceImpl.java:30)

原因

报错的原因时因为在编译输出目录没有找到mapper文件
在这里插入图片描述
mapper文件在源码中的src/main/java中:
在这里插入图片描述

那么我们的mapper文件为什么没有被编译输出呢?因为idea在构建Maven/Gradle项目时,默认只会编译src/main/java下的java文件和src/main/resource的资源文件。而src/main/java下的资源文件会被忽略!

解决

Maven中

[pom.xml]

<resources><resource><!--- 指定目录 ----><directory>src/main/java</directory><includes><!--- 指定xml文件----><include>**/*.xml</include></includes><filtering>false</filtering></resource>
</resources>

Gradle中

见Idea中Gradle插件的“Build and run“设置项,文章中名为"mapperXmlCopy"的task

总结

所以为了避免这个问题导致浪费时间,最好不要将mapper文件放在java目录下,而是放在resources目录下。

其它

参考https://blog.csdn.net/Icannotdebug/article/details/83081745
参考https://blog.csdn.net/qq_43519310/article/details/89388068

这篇关于Idea中运行Maven/Gradle项目报错Invalid bound statement (not found): com.xx.dao.SysSettingMapper.findAll()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/383730

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.