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

相关推荐
谢家小布柔1 分钟前
Java 中的字符串
java·开发语言
码老白1 分钟前
【老白学 Java】HashSet 应用 - 卡拉 OK(五)
java·开发语言
i7i8i9com2 分钟前
java 1.8+springboot文件上传+vue3+ts+antdv
java·spring boot·后端
秋意钟3 分钟前
Spring框架处理时间类型格式
java·后端·spring
寻找沙漠的人8 分钟前
理解JVM
java·jvm·java-ee
我叫啥都行13 分钟前
计算机基础复习12.22
java·jvm·redis·后端·mysql
寻找沙漠的人19 分钟前
JavaEE 导读与环境配置
java·spring boot·java-ee
taoyong00130 分钟前
Java线程核心01-中断线程的理论原理
java·开发语言
Yhame.1 小时前
Java 集合框架中的 List、ArrayList 和 泛型 实例
java
coding侠客1 小时前
Spring Boot 多数据源解决方案:dynamic-datasource-spring-boot-starter 的奥秘
java·spring boot·后端