#{}和${}的区别

(1)n #{} 表示一个占位符号,通过 #{} 可以实现 preparedStatement 向占位符中设置值,自动进行 java 类型和 jdbc 类型转换, #{} 可以有效防止 sql 注入 #{} 可以接收简单类型值或 pojo 属性值。如果 parameterType 传输单个简单类型值, #{} 括号中可以是 value 或其它名称。

(2)n ${} 表示拼接 sql 串,通过 ${} 可以将 parameterType 传入的内容拼接在 sql 中且不进行 jdbc 类型转换, ${} 可以接收简单类型值或 pojo 属性值,如果 parameterType 传输单个简单类型值, ${} 括号中只能是 value

注:
(1)简单类型就是不是自己定义的类型

(2)模糊查询:'%${value}%' 不可漏掉单引号

你可能感兴趣的:(#{}和${}的区别)