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直接被替换掉,故不报错

相关推荐
七夜zippoe16 分钟前
缓存三大劫攻防战:穿透、击穿、雪崩的Java实战防御体系(三)
java·开发语言·缓存
lllsure20 分钟前
【Docker】镜像
java·spring cloud·docker
zhysunny23 分钟前
51.不可变基础设施:云原生时代的「乐高城堡」建造法
java·云原生
无名客031 分钟前
SQL语句执行时间太慢,有什么优化措施?以及衍生的相关问题
java·数据库·sql·sql语句优化
风槐啊36 分钟前
邪修实战系列(3)
java·ide·spring boot·spring·tomcat
咋吃都不胖lyh39 分钟前
SQL数据分析原代码--创建表与简单查询
java·数据库·sql
毕设源码-朱学姐41 分钟前
【开题答辩全过程】以 _基于SpringBoot技术的“树洞”心理咨询服务平台的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
boonya1 小时前
Java内存模型与线程私有共享区域与直接内存的理解
java·开发语言·内存模型
axban1 小时前
QT M/V架构开发实战:QAbstractItemModel介绍
java·数据库·qt
哈喽姥爷1 小时前
Spring Boot--yml配置信息书写和获取
java·数据库·spring boot·mybatis