mybatis字符串模糊匹配

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代码的事。方法一简单明了直观,便于用代码控制,最好。
原文地址:https://www.cnblogs.com/weiyinfu/p/5369085.html