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

MyBatis where标签内嵌foreach标签查询报错‘缺失右括号‘或‘命令未正确结束‘

MyBatis <where>标签内嵌<foreach>标签查询报错’缺失右括号’或’命令未正确结束’

<where>标签内嵌<foreach>标签

截取一段脱敏xml,写明大概意思

<select id="queryLogByIds" resultMap="BaseResultMap">SELECT * FROM BP_LOG<where><if test="ids != null and ids.size() > 0"><!--在<where>标签内 注意在LOG_ID=#{item}两侧留空格 否则会报'缺失右括号'(<foreach>被括号包围的情况下)或'命令未正确结束'-->(<foreach collection="ids" item="item" separator="or"> LOG_ID=#{item} </foreach> )</if></where>ORDER BY LOG_ID
</select>

报错:缺失右括号

打印sql如下

SELECT * FROM BP_LOG WHERE (LOG_ID=?orLOG_ID=?orLOG_ID=? ) ORDER BY LOG_ID

看sql是有右括号的,猜测是 LOG_ID=?orLOG_ID=?...连在一起,执行时断句失败导致报错

替换?去数据库执行一下,果然是因为没有空格断句失败

image-20240712173736852

总结

<where>标签内嵌<foreach>标签时,注意在<foreach>标签内的拼接条件(LOG_ID=#{item})的两侧留空格。

http://www.lryc.cn/news/400155.html

相关文章:

  • 重生奇迹MU 群战王牌
  • SpinalHDL之VHDL 和 Verilog 生成
  • c语言中的字符串函数
  • [AI 大模型] 百度 文心一言
  • 机器学习开源分子生成系列(2)-基于三维形状和静电相似性的DeepFMPO v3D安装及使用
  • 机器学习-16-分布式梯度提升库XGBoost的应用
  • 视觉/AIGC面经->多模态
  • <数据集>钢板缺陷检测数据集<目标检测>
  • EdgeOne安全能力开箱测评挑战赛
  • 神经网络识别数字图像案例
  • c++包管理器
  • 监控易V7.6.6.15升级详解7,日志分析更高效
  • HTML表格、表单标签
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • notepad++中文出现异体汉字,怎么改正
  • EasyAnimate-v3版本支持I2V及超长视频生成
  • 最新PHP自助商城源码,彩虹商城源码
  • Vue2打包部署后动态修改后端接口地址的解决方法
  • 【后端开发实习】用MongoDB实现仓库管理的出库入库实战
  • 内网信息收集——用户凭据窃取
  • 组串式逆变器散热分析
  • WEB07Vue+Ajax
  • uniapp打包成Android时,使用uni.chooseLocation在App端显示的地址列表是空白?一直转圈的解决办法
  • 删除矩阵中0所在行 matlab
  • JavaWeb---HTML
  • Apache Doris:下一代实时数据仓库
  • t-SNE降维可视化并生成excel文件使用其他画图软件美化
  • End-to-End Object Detection with Transformers【方法详细解读】
  • SQLite数据库与ROOM数据库
  • vue实现动态图片(gif)