Java面试-21:MyBatis 中 #{} 与 ${} 的区别?

1、#{} 是预编译处理,相当于 JDBC 的?占位符

会自动给字符串加引号,还能防止 SQL 注入,非常安全。

我们传参数、字段值的时候,全部用 #{}。

2、${} 是直接把值拼接到 SQL 里

不做转义、不加引号,有 SQL 注入风险

一般只用在不能用占位符的地方,比如动态表名、动态排序字段、order by 这类。

Java面试-20:在工作中怎么进行Git版本控制? 2026-03-25
Java面试-22:HashMap 的原理? 2026-03-25

评论区