# MyBatis

# mybatis中#{}和${}的区别

# 和 $ 都是 Mybatis 的占位符。

(1) #{} 变量在预编译阶段生效,此时会将 sql 中的#替换为?号,调用 PreparedStatement 的 set 方法来赋值;而 ${} 变量是在动态 SQL 解析阶段生效,直接进行字符串替换,典型情况就是动态参数。

(2) #{} 方式能够很大程度防止 sql 注入,而 ${} 方式无法防止 Sql 注入。

最近更新: 2025/12/15
 |  Copyright © -Present Kelsen All Rights Reserved. | Author KelsenJing