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