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

1.#{}相当于占位符,${}是进行简单的字符串拼接

2.使用#{}时单参数可以不加注解,${}必须加注解

3.mybatis底层使用的是PrepareStatement和Statement这两个对象(https://blog.csdn.net/marvel__dead/article/details/69486947),那么预编译的时候就会检查sql语句是否正确,如果你实现的是模糊搜索,那么使用#{}(相当于占位符,所以当传入“1=1 or 'xx'”时,是整个字符串匹配)可以防止sql注入的问题,使用${}是字符串的拼接不能防止sql的注入。

 

posted @ 2020-06-17 15:06  阳光seawave  阅读(215)  评论(0编辑  收藏  举报