bind:可以将OGNL(对象图导航语言)表达式的值绑定到一个变量中,方便后来引用这个变量的值
使用Mybatis bind可以实现Mysql的模糊查询字符串拼接(like)
<sql id="columnSql">
<trim suffixOverrides=","> <!-- suffixOverrides此时的作用是去除最后一个逗号 -->
id,
username,
password,
sex,
</trim>
</sql>
<select id="findByUsername" resultMap="resultMap" parameterType="java.lang.String">
SELECT
<include refid="columnSql"></include>
FROM t_user
<where>
<if test="username !=null and username != ''">
<bind name="username_pattern" value="'%'+username+'%'"/>
username like #{username_pattern}
</if>
</where>
</select>
在Controller层执行:List<User> userList = userService.findByUsername("Y");
日志如下:
==> Preparing: SELECT id, username, password, sex FROM t_user WHERE username like ?
==> Parameters: %Y%(String)
<== Total: 3