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

相关文章

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

Maven pom.xml文件中build,plugin标签的使用小结

《Mavenpom.xml文件中build,plugin标签的使用小结》本文主要介绍了Mavenpom.xml文件中build,plugin标签的使用小结,文中通过示例代码介绍的非常详细,对大家的学... 目录<build> 标签Plugins插件<build> 标签<build> 标签是 pom.XML

在VSCode中本地运行DeepSeek的流程步骤

《在VSCode中本地运行DeepSeek的流程步骤》本文详细介绍了如何在本地VSCode中安装和配置Ollama和CodeGPT,以使用DeepSeek进行AI编码辅助,无需依赖云服务,需要的朋友可... 目录步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT安装Ollama下载Olla

JAVA虚拟机中 -D, -X, -XX ,-server参数使用

《JAVA虚拟机中-D,-X,-XX,-server参数使用》本文主要介绍了JAVA虚拟机中-D,-X,-XX,-server参数使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录一、-D参数二、-X参数三、-XX参数总结:在Java开发过程中,对Java虚拟机(JVM)的启动参数进

Nginx实现高并发的项目实践

《Nginx实现高并发的项目实践》本文主要介绍了Nginx实现高并发的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用最新稳定版本的Nginx合理配置工作进程(workers)配置工作进程连接数(worker_co

IDEA接入Deepseek的图文教程

《IDEA接入Deepseek的图文教程》在本篇文章中,我们将详细介绍如何在JetBrainsIDEA中使用Continue插件接入DeepSeek,让你的AI编程助手更智能,提高开发效率,感兴趣的小... 目录一、前置准备二、安装 Continue 插件三、配置 Continue 连接 DeepSeek四

IDEA与JDK、Maven安装配置完整步骤解析

《IDEA与JDK、Maven安装配置完整步骤解析》:本文主要介绍如何安装和配置IDE(IntelliJIDEA),包括IDE的安装步骤、JDK的下载与配置、Maven的安装与配置,以及如何在I... 目录1. IDE安装步骤2.配置操作步骤3. JDK配置下载JDK配置JDK环境变量4. Maven配置下

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx