# MyBatis
# mybatis中#{}和${}的区别
# 和 $ 都是 Mybatis 的占位符。
(1) #{} 变量在预编译阶段生效,此时会将 sql 中的#替换为?号,调用 PreparedStatement 的 set 方法来赋值;而 ${} 变量是在动态 SQL 解析阶段生效,直接进行字符串替换,典型情况就是动态参数。
(2) #{} 方式能够很大程度防止 sql 注入,而 ${} 方式无法防止 Sql 注入。
← Spring核心框架 分布式 →
勤奋的凯尔森同学 # 和 $ 都是 Mybatis 的占位符。
(1) #{} 变量在预编译阶段生效,此时会将 sql 中的#替换为?号,调用 PreparedStatement 的 set 方法来赋值;而 ${} 变量是在动态 SQL 解析阶段生效,直接进行字符串替换,典型情况就是动态参数。
(2) #{} 方式能够很大程度防止 sql 注入,而 ${} 方式无法防止 Sql 注入。
← Spring核心框架 分布式 →