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

#{}表示占位符

select * from user where name = #{name};

1. preparedStatement
2. 自动类型转换(Java和JDBC类型)
3. 防止SQL注入
4. 接收简单类型值或pojo属性值。
  1) 向parameterType中传递单个简单类型值时,#{}括号中可以是value其它名称。
  2) 向parameterType中传递pojo时,#{}括号中使用ognl表达式。


${}表示拼接sql串

select * from user where name = '${name}';


1. 拼接字符串,不自动类型转换
2. ${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。

3. 需要使用引号包围

原文地址:https://www.cnblogs.com/shaohsiung/p/9581296.html