Mybatis 异常总结

news2024/11/20 18:30:57

java.sql.SQLSyntaxErrorException: #42000

一般发生在修改 删除中
原因可能是 传入的参数与 sql 语句不匹配

It’s likely that neither a Result Type nor a Result Map was specified

异常分析:
关键在第一段提示: It’s likely that neither a Result Type nor a Result Map was specified.意思是无法确定返回值类型。
如下代码:

<select id="getEmpById" >
    select * from tbl_employee where id = #{id}
</select>

在写select查询标签时,没加resultType属性。

异常解决,代码如下:

<select id="getEmpById" resultType="com.bean.Employee" >
    select * from tbl_employee where id = #{id}
</select>

小结:
在写select查询标签进行查询时,必须写resultType属性,不然mybatis无法确定返回值类型,就会报错。

补充:
1.进行查询时,resultType(返回值类型)属性不能省略。
2.进行增删改时,parameterType(参数类型)属性可以省略,且它们没有resultType属性,返回值可以直接在Mapper接口上定义。

mybatis允许增删改查直接定义以下类型返回值(Mapper接口中定义)
Integer(返回SQL语句影响的行数)、
Long(同上)
Boolean(返回SQL语句是否执行成功)

<!-- parameterType:参数类型,可以省略  -->
<insert id="addEmp" parameterType="com.bean.Employee">
    INSERT INTO tbl_employee 
    VALUES (#{lastName}, #{gender},#{email});   
</insert>

org.apache.ibatis.binding.BindingException: Parameter ‘status’ not found. Available parameters are [0, id, param1, param2]

29-Mar-2022 18:52:18.212 涓ラ噸 [http-nio-8080-exec-8] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘status’ not found. Available parameters are [0, id, param1, param2]] with root cause
org.apache.ibatis.binding.BindingException: Parameter ‘status’ not found. Available parameters are [0, id, param1, param2]

Mapper接口在传多个参数时找不到
解决: 使用 @Param 注解

 Article getArticleByStatusAndId(@Param(value = "status") Integer status, @Param(value = "id") Integer id);

在这里插入图片描述
传递多个参数, 也可以通过参数的位置来确定,#{0} 表示第一个参数
在这里插入图片描述

使用 MyBatisPlus 时好像没有这个问题

org.apache.ibatis.binding.BindingException

Invalid bound statement (not found): com.example.serviceedu.mapper.EduCourseMapper.selectCoursePublishVoById

AbstractHandlerExceptionResolver.java:194 |org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver |Resolved exception caused by handler execution: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.guli.edu.mapper.CourseMapper.getCoursePublishVoById

原因:

  1. Mapper 接口的方法名 与 Mapper接口的映射文件(xxx.xml) 的 id 不一样

    image-20211230234923498

  2. dao层编译后只有class文件,没有mapper.xml,因为maven工程在默认情况下src/main/java目录下的所有资源文件是不发布到target目录下的,

    image-20220321001223547

    解决方案:

    1、在项目的pom中配置如下节点

    <!-- 项目打包时会将java目录中的*.xml文件也进行打包 -->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>
    

    重新打包项目会发现target目录下出现了xml文件夹

    img

    2、在Spring Boot配置文件中添加配置

    #配置mapper xml文件的路径
    mybatis-plus.mapper-locations=classpath:com/guli/edu/mapper/xml/*.xml
    

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

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

相关文章

Yolov5移植树莓派4B问题总结

Hallo&#xff0c;大家好啊&#xff01;之前出过几篇文章关于Yolov5的&#xff0c;不得不说Yolov5的识别率真的很高&#xff0c;对个体检测很有帮助&#xff0c;如果大家训练完之后会发现获得一个pt文件&#xff0c;这就是训练好的模型。但是&#xff0c;这个模型只能够在自己的…

Golang 【basic_leaming】2 语言容器

阅读目录Go 语言数组_定义_初始化_遍历定义数组Go 语言初始化数组Go 语言遍历数组参考文献Go 语言切片&#xff08;Slice&#xff09;初始化_删除元素_遍历什么是切片声明切片使用 make() 函数构造切片使用 append() 函数为切片添加元素从数组或切片生成新的切片从指定范围中生…

Unreal Engine中的UHT和UBT

UBT&#xff1a;附加在引擎之外的一个自定义工具&#xff0c;用于管理跨各种构建配置&#xff0c;来配置和构建UE源码的过程。 UHT&#xff1a; 目录 UBT&#xff08;UnrealBuilderTool&#xff09; UHT&#xff08;UnrealHeadTool&#xff09; UBT&#xff08;UnrealBuilder…

《第三堂棒球课》:MLB棒球创造营·棒球名人堂

田中将大 田中将大(Tanaka Masahiro)&#xff0c;1988年11月1日出生于兵库县伊丹市&#xff0c;日本职业棒球运动员。 在2006年日本职棒高中生选秀会上被东北乐天金鹰队第一指选中&#xff0c;此后开始职业生涯。在2014年被纽约洋基队以上亿巨额签约&#xff0c;期限为七年。…

混合云运维,实现批量自动化配置

随着企业业务规模扩大和复杂化及云计算、大数据等技术不断发展&#xff0c;企业希望通过上云加速其数字化转型&#xff0c;以私有云为数据存储&#xff0c;保障安全&#xff0c;同时兼顾公有云的计算资源&#xff0c;公有云和私有云融合&#xff0c;混合云逐渐成为企业的大多数…

SpringBoot改动后0.03秒启动

SpringBoot改动后0.03秒启动 一、概述 GraalVM 是一种高性能运行时&#xff0c;可显着提高应用程序性能和效率&#xff0c;非常适合微服务. 对于 Java 程序 GraalVM 负责将 Java 字节码编译成机器码&#xff0c;映像生成过程使用静态分析来查找可从主 Java 方法访问的任何代码…

详细讲解MySQL在Linux中的部署(Centos为例)

本篇文章详解Mysql在Linux中的部署&#xff0c;以便于能够在SQLyog中远程连接MySQL服务&#xff0c;具体步骤如下所示&#xff1a; 1.查找并卸载mariadb 由于Centos7中自带mariadb&#xff0c;而mariadb是MySQL的一个分支&#xff0c;因此&#xff0c;按照MySQL前必须卸载mar…

【C++初阶】string的模拟实现

文章目录string的介绍string的模拟实现string类的成员变量Member functionsconstructor&#xff08;构造函数&#xff09;destructor&#xff08;析构函数&#xff09;operator(给创建出来的对象赋值)Iterators&#xff08;迭代器&#xff09;beginendCapacitysizecapacityrese…

Oracle --- 基础

目录 启动Oracle Oracle监听 监听服务的主要文件 listener.ora tnsnames.ora sqlnet.ora Oracle用户 创建用户 启动Oracle 四步 su - oracle # 切换用户&#xff0c;进入oracle的用户&#xff0c;读取oracle的配置文件lsnrctl start # 启…

手把手教您从建模到仿真计算优化改进新能源汽车电驱动系统转子冲片强度

导读&#xff1a;新能源汽车电驱动系统的主驱电机&#xff0c;正在向高功率密度、高扭矩密度、高效率、低成本、低损耗、轻量化、小型化、集成化、系列化等方向发展。这给各大零部件供应商&#xff0c;提出了一个又一个的新问题和新挑战。 为了降低结构尺寸、重量、原材料成本…

帮你拿下offer的软件测试面试技巧 赶紧码住!

想要进入一家软件类公司&#xff0c;拿到软件测试这方面岗位的offer&#xff0c;除了专业的技术知识过硬之外&#xff0c;必要的软件测试面试技巧也是少不了的&#xff0c;那么测试人们在面试过程中又应该如何作答呢&#xff1f; 这些可以帮你拿下offer的软件测试面试技巧记得不…

北斗导航 | ION GNSS+ 2014到 ION GNSS+ 2017会议论文下载:ION 美国导航学会

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 后文有 ION GNSS+ 2014、2015、2016、2017论文下载百度云链接美国导航学…

路由选择协议(计算机网络)

目录 理想的路由算法 关于最佳路由 从路由算法的自适应性考虑 互联网分层路由 分层路由和自治系统 边界网关协议 BGP 理想的路由算法 算法必须是正确的和完整的 算法在计算上应简单 算法应能适应通信量和网络拓扑的变化&#xff0c;这就是说&#xff0c;要有自适应性 算法…

Java高效率复习-MyBatis[MyBatis]

前言 ORM是持久化映射框架&#xff0c;但是MyBatis的本质并不是ORM框架。 如何使用MyBatis执行数据库语句 依赖导入 首先如果是Maven工程&#xff0c;则导入JDBC的依赖以及MyBaits的核心依赖。 <packaging>jar</packaging> <dependencies><dependenc…

Struts2漏洞 - Struts2-015 Struts2-016 Struts2-045

文章目录Struts2简介Struts2历史漏洞Struts2历史漏洞发现Struts2框架识别Struts2历史漏洞利用Struts2-015漏洞简介影响范围环境搭建漏洞复现Struts2-016漏洞简介影响范围环境搭建漏洞复现Struts2-045漏洞简介影响范围环境搭建漏洞复现Struts2简介 Apache Struts是美国阿帕奇&a…

制造管理系统在企业生产中的应用——百数制造系统

随着经济全球化程度的加深&#xff0c;企业对信息化的需求大大增加&#xff0c;对信息的集成度和管理要求也更加严格&#xff0c;信息化已经成为制造企业持续提升核心竞争力的必然趋势。数字化的制造管理系统在多年前一出现就赢得不少企业管理者的认可&#xff0c;再加上数字化…

Spark的宽窄依赖

依赖关系 RDD会不断进行转换处理&#xff0c;得到新的RDD 每个RDD之间就产生了依赖关系 窄依赖 一个Stage内部的计算都是窄依赖的过程&#xff0c;全部在内存中完成 定义&#xff1a;父RDD的一个分区的数据给子RDD的一个分区【不需要调用Shuffle的分区器】 特点&#xff1a; …

浅谈ReentrantLock的公平锁和非公平锁的区别

前言 最近在看java并发编程这本书&#xff0c;已经看了点ReentrantLock的源码&#xff0c;以及之前有面试官问&#xff0c;公平锁和非公平锁有啥区别&#xff0c;我就只是从源码层面说了一下区别&#xff0c;但在性能上也有区别&#xff0c;今天就来说道说道。 公平与非公平 …

Exponentiation

Exponentiation is a mathematical operation, written as bn, involving two numbers, the base b and the exponent or power n, and pronounced as “b (raised) to the (power of) n”.[1] When n is a positive integer, exponentiation corresponds to repeated multipli…

Mac卸载mysql并重新安装mysql

一、Mac卸载mysql 1、在系统偏好设置找到MySQL服务—>停止 2、打开终端 sudo rm /usr/local/mysql sudo rm -rf /usr/local/var/mysql sudo rm -rf /usr/local/mysql* sudo rm -rf /Library/StartupItems/MySQLCOM sudo rm -rf /Library/PreferencePanes/My* vim /etc/ho…