like fuzzy query in Mybatis


1. Directly add %% to the parameter

  param.setUsername("%CD%");
  param.setPassword("%11%");
 <select id="selectPersons" resultType="person" parameterType="person">
 select id,sex,age,username,password from person where true
 <if test="username!=null"> AND username LIKE #{username}</if>
 <if test="password!=null">AND password LIKE #{password}</if>
 </select>

2. bind label

<select id="selectPersons" resultType="person" parameterType="person">
 <bind name="pattern" value="'%' + _parameter.username + '%'" />
 select id,sex,age,username,password
 from person
 where username LIKE #{pattern}
</select>

3. CONCAT

where username LIKE concat(concat('%',#{username}),'%')