第一种
<if test="name!=null">
and name like '%${name}%'
</if>
这种方式无法避免sql注入,不推荐.
第二种:
<if test="name!=null">
and name like CONCAT('%',#{name},'%')
</if>
当然还有别的方式,比如标签定义,但是不太方便.
注:第二种不适用oracle ,因为oracle concat函数只能拼接两个concat('%',s);
oracle 可以使用 name like '%'||#{name}||'%'