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排序時,須要用$.

相關文章
相關標籤/搜索