Mybatis踩坑日记------#{}和${} 报错 merge sql error, dbType mysql, druid-1.2.8

mybatis执行中,druid报错 merge sql error, dbType mysql, druid-1.2.8

如题

先上sql

sql 复制代码
select * from a
        order by #{orderByColumn} #{isAsc}

再代码执行中会报错

解决办法

sql 复制代码
select * from a
        order by #{orderByColumn} ${isAsc}

原因

#{}采用预处理的方式,会出现

sql 复制代码
select * from a
        order by ? ?

两个? ?分别对应 orderByColumn 和 isAsc,因为出现了? ?,预处理时druid报错

${}采用直接替换的方式,会出现

sql 复制代码
select * from a
        order by id asc

orderByColumn 和 isAsc直接被替换掉,故不报错

相关推荐
2201_7578308714 小时前
全局异常处理器
java
小徐Chao努力15 小时前
【Langchain4j-Java AI开发】09-Agent智能体工作流
java·开发语言·人工智能
Coder_Boy_16 小时前
SpringAI与LangChain4j的智能应用-(理论篇3)
java·人工智能·spring boot·langchain
Coder_Boy_16 小时前
基于SpringAI的智能平台基座开发-(六)
java·数据库·人工智能·spring·langchain·langchain4j
伯明翰java17 小时前
Java数据类型与变量
java·开发语言
想用offer打牌17 小时前
如何开启第一次开源贡献之路?
java·后端·面试·开源·github
小许学java17 小时前
Spring原理
java·spring·生命周期·作用域·原理
教练、我想打篮球18 小时前
122 Hession,FastJson,ObjectInputStream的序列化反序列化相同引用的处理
java·config·utils
酷柚易汛18 小时前
酷柚易汛ERP 2025-12-26系统升级日志
java·前端·数据库·php
侠客行031718 小时前
Mybatis入门到精通 一
java·mybatis·源码阅读