# MyBatis

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

# 和 $ 都是 Mybatis 的占位符。

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

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

最近更新: 12/3/2024
勤奋的凯尔森同学   |