1. 参数中直接加入%%,注意不需要加两个单引号,加了就会出错,因为系统会自动为字符串类型加上两个单引号
<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标签
<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 cancat('%',#{username},'%')
这三种方式哪个好呢?concat必然会先耗时间去执行函数费数据库的事,bind费mybatis的事,第一种方式费java代码的事。方法一简单明了直观,便于用代码控制,最好。