mybatis框架相关问题总结(本地笔记搬运)

1、背景

2、运行启动问题

问题一

运行spring boot项目时报错:‘factoryBeanObjectType‘: java.lang.String

解决一

版本问题,springframework版本和mybatis/mybatis-plus版本不兼容。现spring-boot使用3.3.0版本,mybatis-plus使用3.5.7版本(或mybatis使用3.0.3版本),暂无其他兼容性问题。在这里插入图片描述在这里插入图片描述
在这里插入图片描述

问题二

运行spring boot项目时报错:Failed to determine a suitable driver class
在这里插入图片描述

解决二

在启动类上加上exclude排除自动配置数据源
@SpringBootApplication(exclude= DataSourceAutoConfiguration.class)
未解决

检查配置文件yml或properties
未发现错误的配置

最后解决了,解决方法是将mapper、service、controller等文件夹路径放在与xxxApplication启动类同一路径下,然后不再报错。(之前新建了一个J2EE文件夹,然后将mapper、service、controller文件夹放在了该里面,暂不知道错误原因)
在这里插入图片描述

问题三

运行报错:No qualifying bean of type 'com.example.mybatisdemo.mapper.xxxMapper'
在这里插入图片描述

解决三

原因是没有将Mapper类的bean注册到IOC中,解决方法是以下二选一:

  • 需要在相关Mapper类上加上@Mapper
    或者
  • 在启动类上加上mapper路径扫描:@MapperScan("com.example.mybatisdemo.mapper")
问题四

运行报错:IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
在这里插入图片描述

解决四

在启动类设置注解:@SpringBootApplication(exclude= DataSourceAutoConfiguration.class)导致的。此时要么删除后面的exclude,又或者手动配置数据源

3、xml映射文件问题

问题1

报错Cause: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0)

解决1

中只能包含一条sql语句(且不能有注释),例如删除红框部分的注释。
在这里插入图片描述

问题2:#{}和${}的区别
解决2

${}是Properties 文件的变量占位符,进行原样文本替换(sql拼接),可能导致sql注入,尽量避免使用。
#{}是sql语句的参数占位符,相当于原生jdbc流程中的preparedStatement,将#{}替换为?占位符,然后依次对占位符设置参数值。

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

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

相关文章

下班时间如何安排?

随着互联网的飞速发展和数字化时代的来临,越来越多的人开始探索除了主业以外的赚钱途径,以增加收入来源。本文将为您介绍几种当前热门的高薪副业项目,包括网络任务赚钱、开设个人网店、电商导购推广、在线辅导教学、技能变现服务、视频创作分…

ROS程序设计系列 - 4.ROS Programming

ROS程序设计系列 - 4.ROS Programming 1. 源由2. 概念2.1 ROS services2.2 ROS actions2.3 ROS time2.4 ROS bags2.5 Debugging 3. 常见应用4. 示例4.1 运行4.2 代码 5. 视频课程 1. 源由 继续学习ROS编程,本章主要是一些基本组件和概念。并结合示例代码进行阐述。…

知识篇| 全面认识Git lfs

我们经常在使用hugging face上模型和数据集时候,如果要想模下载到本地,要使用git lfs 方式下载。 那么与git有什么关系?什么是git lfs? 现在最流行的代码管理工具就是git, Git 是业界流行的分布式版本控制工具,仓库与远端仓库同样保存了全量的文件和变更历史&am…

java:Multiple Bounds--类型变量(TypeVariable)定义的高级用法--<A extends ClassAIfAIfB >

做Java开发工作好多年了。今天偶然翻到 java.lang.TypeVariable的源码&#xff0c;好奇为什么 TypeVariable.getBounds()返回类型是个数组。 一般不都是<T extends Number> 这样用码&#xff1f;T难道还能extends多个类型&#xff1f; 同问&#xff1a;不应该是extend,为…

CSS-0_2 CSS和继承(inherit initial)

文章目录 CSS的层叠和继承inheritinitial很多你以为的样式初始值&#xff0c;其实是用户代理样式 碎碎念 CSS的层叠和继承 在上一篇 CSS和层叠、样式优先级 里已经讲过了层叠和优先级之间的关系&#xff0c;但是在CSS中的层叠除了体现在争抢露脸机会的优先级之外&#xff0c;还…

Python自动化(2)——键盘模拟

Python自动化(2)——键盘模拟 前台键盘模拟 前台键盘模拟和后台键盘模拟的区别在于&#xff0c;是否绑定窗口。即前台模拟是只模拟键盘操作&#xff0c;例如按下按键a&#xff0c;如果聚焦在一个文本文档的编辑区&#xff0c;那么就会把这个a输入进去。但如果是聚焦到了浏览器…

前端面试js高频手写大全

res.push(fn(arr[i])) } return res } 3. reduce实现数组的map方法 Array.prototype.myMap function(fn,thisValue){ var res []; thisValue thisValue||[]; this.reduce(function(pre,cur,index,arr){ return res.push(fn.call(thisValue,cur,index,arr)); },[])…

云计算考试题

Cloud ❀ 云计算-虚拟化常见的两种架构_裸金属架构和宿主型架构的区别-CSDN博客 为啥要成2 11 bcd 16 acd abcd BCD NAS为啥支持文件存储的协议 选BCD 什么是网络文件系统 选bcd 错题 选abc 选bcd 选 abd

Spring Cloud Gateway网关下的文档聚合(knife4j)

文章目录 引言I 服务发现自动聚合(discover)1.1 配置1.2 服务发现的路由聚合策略-数据来源1.3 编写动态路由实现类1.4 依赖II 其他2.1 网关动态加载swagger路由和配置2.2 无法处理 lb://URI,返回503错误。2.3 SpringBoot3 解决NoResourceFoundException: No static resource f…

让PG停摆一周的大会?2024 PGConf.dev 技术大盘点(下)

PGCon.Dev 的前身是 PGCon —— 最知名的 PostgreSQL Hacker 年度聚会&#xff0c;也可以说是决定 PostgreSQL 未来的会议。从 2007 年成立以来&#xff0c;一直都是在加拿大渥太华举办至今。 有多隆重呢&#xff1f;PG 核心组的 Peter Eisentraut 在会后做了一个统计&#xff…

建筑驱鸟设备 | 建筑专用超声波驱鸟器

从半夜的鸣叫到频繁的鸟粪污染&#xff0c;鸟类活动有时会成为城市居民不得不面对的小小困扰。通过合理的驱鸟方法&#xff0c;我们可以有效地减少鸟类对建筑物的侵扰&#xff0c;保护建筑物的完好和安全&#xff0c;同时维护城市居民的生活质量。 建筑专用超声波驱鸟器&#x…

为什么伦敦金新手不能用一小时图及以下的时间周期?

刚进入伦敦金市场的投资者&#xff0c;一般不建议使用较低的时间周期&#xff0c;如1小时图或以下。不仅如此&#xff0c;新手或者兼职投资者会被要求使用较高的时间周期交易&#xff0c;如4小时图或日线图&#xff0c;这有什么道理呢&#xff1f;下面我们就来讨论一下。 新手的…

从零开始如何学习人工智能?

说说我自己的情况&#xff1a;我接触AI的时候&#xff0c;是在研一。那个时候AlphaGo战胜围棋世界冠军李世石是大新闻&#xff0c;人工智能第一次出现我面前&#xff0c;当时就想搞清楚背后的原理以及这些技术有什么作用。 就开始找资料&#xff0c;看视频。随着了解的深入&am…

社区团购系统智慧门店物流配送系统开发,支持小程序公众号。

目录 前言&#xff1a; 一、为什么要做社区团购小程序&#xff1f; 二、怎么做一个社区团购小程序&#xff1f; 三、制作属于自己的社区团购小程序有什么好处&#xff1f; 总结&#xff1a; 前言&#xff1a; 社区团购是针对小区居民或群体开发的在线购物平台&#xff0c;…

win10手动安装stable-diffusion-webui

目录 1.python下载安装 2.git下载安装 3.stable-diffusion-webui下载 4.安装s-d-webui的依赖包&#xff08;用国内镜像提速&#xff09; 5.git下载的stable-diffusion-webui&#xff0c;依赖包提示已安装&#xff0c;但运行webui-user.bat后&#xff0c;又开始下载 6.修…

RedTail 僵尸网络积极利用新漏洞发起攻击

自从 Palo Alto 的 PAN-OS 漏洞公开披露以来&#xff0c;研究人员发现已有攻击者将该漏洞纳入武器库中。 CVE-2024-3400 2024 年 4 月 11 日&#xff0c;Palo Alto 发布公告称基于 PAN-OS 的产品中存在的 0day 漏洞已经被攻击者利用&#xff0c;安全公司 Volexity 已经发现了…

配置 python 脚本操作Excel 环境

在已装python的前提下 一、安装依赖库 pip install pandas pip install openpyxl安装完后&#xff0c;可以在 Python 中运行以下命令来查看 pandas 或 openpyxl 的安装路径&#xff1a; import pandas as pd print(pd.__path__)import openpyxl print(openpyxl.__path__)二、测…

LearnOpenGL - Android OpenGL ES 3.0 绘制纹理

系列文章目录 LearnOpenGL 笔记 - 入门 01 OpenGLLearnOpenGL 笔记 - 入门 02 创建窗口LearnOpenGL 笔记 - 入门 03 你好&#xff0c;窗口LearnOpenGL 笔记 - 入门 04 你好&#xff0c;三角形OpenGL - 如何理解 VAO 与 VBO 之间的关系LearnOpenGL - Android OpenGL ES 3.0 绘制…

光纤中的数值 2.405 是怎么一回事?

在光纤通信中,光线的传播依赖于纤芯和包层之间的折射率差异。 即,当光线从纤芯入射到界面上时,如果入射角大于临界角 θ0,将发生全反射,没有光能量透射至包层而泄漏出去,此即光纤导光原理。 反映到光纤的端面,在光纤端面的光线,当入射角必须小于光纤的孔径角 α0 ,此时…

高效管理:好用的项目管理工具推荐

在当今快速变化的商业环境中&#xff0c;高效的项目管理工具能够显著提升团队的生产力和项目的成功率&#xff0c;还能有效地跟踪项目进度。所以&#xff0c;一款优秀的项目管理工具首先要具备先进的项目管理理念&#xff0c;支持多种研发管理和项目管理方法论&#xff0c;才能…