MyBatis Like 模糊查询

最近研究了一下MyBatis, 在用MyBatis 进行 LIKE模糊查询时语句如下:

1.
  <select id="getAllUsersByUserName" parameterType="map" resultType="User">
        SELECT u.* FROM User u WHERE u.username LIKE #{username} '%' LIMIT #{start}, #{limit}
    </select>

注意: #{username} '%' 这儿有一个空格 如果没有空格 MyBatis会报错

2. 也可以这样写
<select id="getAllUsersByUserName" parameterType="map" resultType="User">
SELECT u.* FROM User u WHERE u.username LIKE CONCAT('${username}','%') LIMIT #{start}, #{limit}
</select>

在MyBatis解释时是这个样子的:

==>  Preparing: SELECT u.* FROM User u WHERE u.username LIKE ? '%' LIMIT ?, ?
==> Parameters: J(String), 0(Integer), 5(Integer)
#{param} 被解释为占位符 ?
然后在设置值

猜你喜欢

转载自zhima.iteye.com/blog/1826411