Mybatis之SQL

今天作了一个小Demo关于like的写法,记录一下.sql

直接写 xxx like  '%#{xxx}%' 是会报错的,由于没有找到对应占位符却插入属性值.排序

故能够按照一下几种方式写:编译

1. xxx like "%"#{xxx}"%"sql语句

2. xxx lile CONCAT(CONCAT('%',#{xxx}),'%') 或者 xxx lile CONCAT(CONCAT('%',${xxx}),'%')注入

3. xxx like CONCAT('%',#{xxx},'%') 或者 xxx like CONCAT('%',${xxx},'%')

4. xxx like '%${xxx}%’

建议用#,而不用$.缘由在于$直接认为是sql语句,即直接拼接进去.

而#则是预编译,首先能够防止SQL注入,其次动态SQL,进行预编译,是JDBC中PreparedStatement来作.

固然$不是彻底无用处,在order by排序时,须要用$.

相关文章
相关标签/搜索