当前位置: 首页 > news >正文

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,将#{}替换为?占位符,然后依次对占位符设置参数值,并且附带单引号,可以防止sql注入。

相关文章:

  • 这家民营银行起诉担保公司?暴露担保增信兜底隐患
  • 波兰出局奥地利无限可能,荷法无谓争小组第一,谁能小组第一?
  • 帕金森患者饮食指南:科学调养,呵护健康
  • 一般人不要学Python?一般人怎么学Python!!
  • Android studio在Ubuntu桌面上 创建桌面图标,以及导航栏图标
  • “论数据访问层设计技术及其应用”必过范文,软考高级,系统架构设计师论文
  • 【Pmac】PMAC QT联合开发中各种可能遇到的坑
  • C++之提高篇
  • 【数据结构】链表的大概认识及单链表的实现
  • 考前刷题练手感(北航期末往年数据结构编程题)
  • 【数据结构】线性表之《栈》超详细实现
  • 【八股系列】介绍React高阶组件,适用于什么场景?
  • 毕业季带给我的五个启示
  • 如何清除anaconda3缓存?
  • 乾坤微服务的使用
  • .pyc 想到的一些问题
  • CEF与代理
  • classpath对获取配置文件的影响
  • HTML-表单
  • js ES6 求数组的交集,并集,还有差集
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Python - 闭包Closure
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • SpiderData 2019年2月16日 DApp数据排行榜
  • springMvc学习笔记(2)
  • 后端_ThinkPHP5
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 利用DataURL技术在网页上显示图片
  • 前嗅ForeSpider中数据浏览界面介绍
  • 驱动程序原理
  • 小程序01:wepy框架整合iview webapp UI
  • 正则表达式
  • 7行Python代码的人脸识别
  • ​ArcGIS Pro 如何批量删除字段
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​flutter 代码混淆
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # Maven错误Error executing Maven
  • #162 (Div. 2)
  • #ifdef 的技巧用法
  • #考研#计算机文化知识1(局域网及网络互联)
  • $.ajax,axios,fetch三种ajax请求的区别
  • $.proxy和$.extend
  • (20050108)又读《平凡的世界》
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (21)起落架/可伸缩相机支架
  • (a /b)*c的值
  • (TOJ2804)Even? Odd?
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (含笔试题)深度解析数据在内存中的存储
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (四)Android布局类型(线性布局LinearLayout)
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • .net core 源码_ASP.NET Core之Identity源码学习