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

相关推荐
java1234_小锋3 分钟前
Java高频面试题:Redis的Key和Value的设计原则有哪些?
java·redis·面试
iPadiPhone7 分钟前
流量洪峰下的数据守护者:InnoDB MVCC 全实现深度解析
java·数据库·mysql·面试
Nuopiane8 分钟前
关于C#/Unity中单例的探讨
java·jvm·c#
win x10 分钟前
JVM类加载及双亲委派模型
java·jvm
毕设源码-赖学姐24 分钟前
【开题答辩全过程】以 滑雪场租赁管理系统的设计与实现为例,包含答辩的问题和答案
java
Javatutouhouduan32 分钟前
SpringBoot整合reids:JSON序列化文件夹操作实录
java·数据库·redis·html·springboot·java编程·java程序员
wen__xvn42 分钟前
模拟题刷题3
java·数据结构·算法
bug攻城狮1 小时前
Spring Boot应用内存占用分析与优化
java·jvm·spring boot·后端
無限進步D1 小时前
Java 循环 高级(笔记)
java·笔记·入门
小六溜了1 小时前
模块二十三.网络编程&正则表达式&设计模式
java