MyBatis--------模糊查询
一、使用${ }
不能够防止SQL注入。MySQL与Oracle通用
<select id="get" resultType="..">
SELECT * FROM t_tag where tag_name LIKE '%${tagName}%'
</select>
二、把模糊查询的 %加上引号
就像这样子, "%"#{param}"%"
<select id="get" resultType="..">
SELECT * FROM t_tag where tag_name LIKE "%"#{tagName}"%"
</select>
多个匹配条件可以像这样写
<select id="findAllScheduleJobClassNames" resultType="java.lang.String">
SELECT u.stu_account FROM 表 u
<if test="nameOrNum != null and nameOrNum !=''">
AND (u.stu_account like concat(concat('%',#{nameOrNum}),'%')
or
u.name like concat(concat('%',#{nameOrNum}),'%') )
</if>
</select>
三、使用函数进行拼
最推荐的方式:
concat(a,b)函数能够拼接字符串。如下
<select id="get" resultType="..">
SELECT * FROM t_tag tag_name LIKE concat(concat("%",#{tagName),"%")
</select>
Oracle版本
<if test=" projectTypeName!= null and projectTypeName!= ''">
AND t.project_type_name like '%' || #{projectTypeName} || '%'
</if>