Mybatis 用#{}和${}取值的区别
用#{}取值
- mybatis用得预通道的方式进行处理(preparedStatement)这样可以防止sql注入
- 用#{}取值,相当于把取到的值按字符串处理例如:select * from user where id=#{} ————–>假如传过来的为8,这条select 语句为select * from user where id = ? 问号处的id自动就加上‘id’最终结果sql语句为select * from user where id = ‘8’;
用${}取值
- 用${}取值用得不是Statement不能防止sql注入
- 用${}取值不会对取到的值加‘ ’引号
通常取值最好用#{}可以防止sql注入
在用group by
、orderby
{}