在Mybatis中 sql语句的like 不能直接用 ‘%#{参数}%’的形式,应使用 “%”#{参数}“%”。

mysql数据库写法如下:

<select id="getList" resultMap="GSUserBanding" parameterType="java.util.HashMap">
SELECT * FROM 表 AS tm WHERE 1=1
<if test="UserName !=null and UserName!=''">
and UserName =#{UserName}
</if>
<if test="NickName !=null and NickName!=''">
and NickName like '%#{NickName}%' ---错误
</if>
<if test="archNo !=null and archNo !=''">
and archNo like "%"#{archNo}"%" ---正确
</if>
</select>

但postgresql数据库用上面写法,会报错:ERROR: syntax error at or near "$1"

可以使用 || 方式连接,如下:

<if test="bank_name !=null and bank_name !=''">
and bank_name like '%'|| #{bank_name} ||'%'
</if>