Invalid bound statement (not found)

news2024/11/25 8:20:51

在使用Mybatisplus时报错Invalid bound statement (not found),在此记录一下

先附上解决办法

step 1、启动类加上@MapperScan注解

package com.study.test;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan(basePackages = {"com.study.*.dao","com.study.*.mapper"})
@SpringBootApplication
public class UaaMain {
    public static void main(String[] args) {
            SpringApplication.run(UaaMain.class, args);
        }
}

step 2
pom.xml配置中指定resource资源路径

	<build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <filtering>false</filtering>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
        </resources>
    </build>

情景复现

@MapperScan ---- 用于扫描指定路径下的Mapper文件

package com.study.test;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan(basePackages = {"com.study.*.dao","com.study.*.mapper"})
@SpringBootApplication
public class UaaMain {
    public static void main(String[] args) {
            SpringApplication.run(UaaMain.class, args);
        }
}

使用@MapperScan注解后会扫描 com.study.*.daocom.study.*.mapper 路径下所有mapper文件,这样就不需要再每个mapper接口上加@Mapper注解标识了

在mapper中自定义方法

package com.study.test.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.study.test.entity.SysUser;
import org.apache.ibatis.annotations.Param;

public interface UserMapper extends BaseMapper<SysUser> {
	SysUser getByUserId(@Param("id") Long id);
}
<?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.study.test.dao.UserMapper">

    <resultMap id="base" type="com.study.test.entity.SysUser">
        <result property="id" column="id"/>
        <result property="password" column="password"/>
        <result property="username" column="username"/>
        <result property="code" column="code" />
        <result property="age" column="age" />
        <result property="roleId" column="rid" />
    </resultMap>
    
    <select id="getByUserId" resultMap="base" resultType="com.study.test.entity.SysUser">
        select * from user where id = #{id}
    </select>

</mapper>

使用UserMapper 里继承自 BaseMapper 里的方法没有问题
使用UserMapper 里的自定义的 getByUserId 方法时报错Invalid bound statement (not found)

这里看到xml中namespace也映射到了对应的mapper
select语句中的id也映射到了mapper中对应的方法名

查看target中编译打包的文件
在这里插入图片描述
发现只有Mapper文件,并没有xml文件

这是因为maven打包时默认路径扫描是在src/main/resources路径下
这里将xml文件放在了src/main/java路径下
需要在pom.xml文件中对maven扫描资源路径做一个配置

	<build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <filtering>false</filtering>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
        </resources>
    </build>

重新maven clean再maven install发现xml文件打包进去了
在这里插入图片描述
再执行上面UserMapper中的getByUserId方法正常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/865541.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于QT ,halcon实现可视化程序编程框架

基于qt ,halcon 实现可视化程序编程框架 完整源码 :订阅后 请加微信 SimpleAuto6,将在第一时间发送,未订阅,时间宝贵,勿扰 部分源码: #include "LogInDialog.h"LogInDialog::LogInDialog(int w, int h,QWidget *parent): QDialog(parent),m_Password(…

SpringBoot复习:(31)Controller中返回的对象是如何转换成json字符串给调用者的?

首先&#xff0c;SpringBoot自动装配了HttpMessageConvertersAutoConfiguration这个自动配置类 而这个自动配置类又通过Import注解导入了JacksonHttpMessageConvertersConfiguration类&#xff0c; 在这个类中配置了一个类型为MappingJackson2HttpMessageConverter类型的bean…

教你一招:非计算机科班如何丝滑转码?

近年来&#xff0c;很多人想要从其他行业跳槽转入计算机领域。非计算机科班如何丝滑转码&#xff1f; 目录 一、确定方向 二、确定学习计划&#xff08;自学&#xff09; 三、学习 看到组里好多非科班姐妹决定转码之后&#xff0c;因为相关背景知识不足难以确定学习计划&am…

田间农业数字管理系统-高标准农田建设

政策背景 2019年11月&#xff0c;国务院办公厅印发的《国务院办公厅关于切实加强高标准农田建设提升粮食安全保障能力的意见》明确提出&#xff0c;到2022年&#xff0c;全国要建成10亿亩高标准农田。 2021年9月16日&#xff0c;由农业农村部印发的《全国高标准农田建设规划&a…

python时间戳转换字符串时间

Python时间戳和日期格式之间的相互转化 将10位或13位时间戳转为日期格式&#xff08;年-月-日 时-分-秒&#xff09; python毫秒时间戳转为字符串时间 java默认精度是毫秒级别的&#xff0c;生成的时间戳是13位&#xff0c; 而python默认是10位的&#xff0c;精度是秒。如p…

2023牛客暑期多校训练营8-I Make It Square

2023牛客暑期多校训练营8-I Make It Square https://ac.nowcoder.com/acm/contest/57362/I 文章目录 2023牛客暑期多校训练营8-I Make It Square题意解题思路代码实现 题意 解题思路 这里有两种情况&#xff0c;即 ∣ s ∣ > ∣ t ∣ |s|>|t| ∣s∣>∣t∣和 ∣ s ∣…

如何让你的视频在 TikTok上变得火爆?

TikTok凭借巨大的用户量和商业价值&#xff0c;它从来不缺优质内容。如何在众多内容中脱颖而出获得关注&#xff0c;这并不简单。和泛流量账号不同&#xff0c;商业账号的目的更加明确&#xff0c;也就是说&#xff0c;商业账号并不一定要以高流量最为唯一的追求目标&#xff0…

动态规划之斐波拉契数列模型

斐波拉契数列模型 1. 第 N 个泰波那契数2. 三步问题&#xff08;easy&#xff09;3. 使⽤最⼩花费爬楼梯&#xff08;easy&#xff09;4. 解码⽅法&#xff08;medium&#xff09; 动态规划的介绍&#xff1a; 动态规划是一种在数学、管理科学、计算机科学、经济学和生物信息学…

最短路相关思想总结

dijkstra—所有边均为正权边 1.稠密图 算法思想 将所有的点读入邻接表 外层n次循环 每次找到最近的点&#xff0c;记录这个点的访问状态&#xff0c;使用这个点对其他的点进行更新&#xff0c;最后返回最短路 为什么要记录每个点的状态&#xff1f;我不能重复搜这个点吗&…

面对AI冲击,技术人才该如何考核?

一天下午&#xff0c;在与知名企业的技术交流会议室里&#xff0c;一位兄弟企业的CTO 小力苦笑着&#xff0c;分享了一个技术招聘的故事&#xff1a; “我们有个高级工程师&#xff0c;为了搞定MySQL三个表Join的问题&#xff0c;搞了一整天都研究不出来。结果他尝试将表结构扔…

【C++进阶】继承、多态的详解(继承篇)

【C进阶】继承、多态的详解&#xff08;继承篇&#xff09; 目录 【C进阶】继承、多态的详解&#xff08;继承篇&#xff09;继承的概念及定义继承的概念继承的定义定义格式继承关系和访问限定符继承基类成员访问方式的变化 基类和派生类对象赋值转换继承中的作用域派生类的默认…

你不能访问此共享文件夹因为你组织的安全策略

我在windows 10中尝试访问没有密码的共享文件只报错如下&#xff1a; 解决办法 运气中执行 gpedit.msc来启动本地组策略编辑器。 这样设置完成后&#xff0c;就可以在运行中输入 \\192.168.199.1\可以访问共享的文件了。 参考 https://zhuanlan.zhihu.com/p/164721714…

HashMap 二十一问

1&#xff1a;HashMap 的数据结构&#xff1f; A&#xff1a;哈希表结构&#xff08;链表散列&#xff1a;数组链表&#xff09;实现&#xff0c;结合数组和链表的优点。当链表长度超过 8 时&#xff0c;链表转换为红黑树。transient Node<K,V>[] table; 2&#xff1a;…

QT QtXlsx安装使用

QtXlsx介绍 QtXlsx是一个可以读取和写入Excel文件的库。它不需要Microsoft Excel&#xff0c;可以在Qt5支持的任何平台上使用。 这里一定是需要QT5支持的。 须知安装QtXlsx时&#xff0c;需要下载perl 1.安装perl 这里选择官网下载安装即可。 官网地址&#xff1a;https://p…

Android应用开发(35)SufaceView基本用法

Android应用开发学习笔记——目录索引 参考Android官网&#xff1a;https://developer.android.com/reference/android/view/SurfaceView 一、SurfaceView简介 SurfaceView派生自View&#xff0c;提供嵌入视图层次结构内部的专用绘图表面&#xff0c;SurfaceView可以在主线程之…

开学第一课什么时候播出2023年在哪里用手机在线观看开学第一课高清直播入口

往期《开学第一课》什么时候播出&#xff1f; 《开学第一课》是一年一度面向全国中小学生的大型公益节目&#xff0c;从2008年起于每年9月1日播出&#xff0c;最近一期是2022年9月1日20:00播出&#xff1b; 2023年《开学第一课》什么时候播出&#xff1f; 根据往期播出时间预…

Spring Task入门案例

Spring Task 是Spring框架提供的任务调度工具&#xff0c;可以按照约定的时间自动执行某个代码逻辑。 定位&#xff1a;定时任务框架 作用&#xff1a;定时自动执行某段Java代码 强调&#xff1a;只要是需要定时处理的场景都可以使用Spring Task 1. cron表达式 cron表达式…

安装docker和案例复现

安装环境 1.安装docker #输入命令 yum install -y yum-utils 安装下载docker的工具包 yum install -y yum-utils # 设置阿里docker镜像仓库地址 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install -y docker-ce d…

【JavaSpring】注解开发

注解开发定义bean 不指定名称 package org.example.service.impl;import org.example.dao.BookDao; import org.example.service.BookService; import org.springframework.stereotype.Component;Component public class BookServiceimpl implements BookService {private Bo…

[JAVAee]多线程环境下:HashTable, HashMap, ConcurrentHashMap之间的区别

HashMap在多线程环境下是不安全的,只能在单线程下使用. 多线程下安全的只有: HashTableConcurrentHashMap HashTable HashTable在多线程环境下安全的原因是,给其的get与put方法都使用synchronized修饰了,被锁的对象是整个HashTable,只要有线程对此HashTable操作就上锁,其他…