1.'%${question}%' 不推荐
<where>
1=1
<if test="name != null and name != ''">
AND name LIKE '%${name}%'
</if>
<if test="class != null and class != ''">
AND class LIKE '%${class}%'
</if>
</where>
也可以获取从前端传过来的值,再传给对象的时候,需要手动拼接:
//从前端传来变量 name 和 class
User user=new User();
user.setName("%"+name+"%");
user.setClass("%"+class+"%")
mapper处理:
<where>
1=1
<if test="name != null and name != ''">
AND name LIKE #{name}
</if>
<if test="class != null and class != ''">
AND class LIKE #{class}
</if>
</where>
2.CONCAT('%',#{question},'%') 推荐
获取到变量直接给对象就可以了
<where>
1=1
<if test="name != null and name != ''">
AND name LIKE CONCAT('%',#{name},'%')
</if>
<if test="class != null and class != ''">
AND class LIKE CONCAT('%',#{class},'%')
</if>
</where>
3.NAME like '%'|| #{name} || '%'
<where>
1=1
<if test="name != null and name != ''">
AND name LIKE '%'|| #{name} || '%'
</if>
</where>