#{}和${}的区别
- #{}表示一个占位符号
1.通过#{}可以实现 preparedStatement 向占位符中设置值,自动进行 java 类型和 jdbc 类型转换,#{}可以有效防止 sql 注入。
2.#{}可以接收简单类型值或 pojo 属性值。
3.如果 parameterType 传输单个简单类型值,#{}括号中可以是 value 或其它名称。
- ${}表示拼接 sql 串
1.通过${}可以将 parameterType 传入的内容拼接在 sql 中且不进行 jdbc 类型转换。
2.${}可以接收简单类型值或 pojo 属性值。
如果 parameterType 传输单个简单类型值,${}括号中只能是 value。
POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。