MyBatis 模糊查询 like 语该怎么写?

在 MyBatis 中,可以使用 LIKE 关键字来进行模糊查询。下面是一个使用 LIKE 的例子:

在你的 Mapper XML 文件中:

<select id="findUsersByName" resultType="com.example.User">
  SELECT * FROM user WHERE name LIKE #{name}
</select>

在你的 Java 代码中:

String name = "%" + "张三" + "%";
List<User> users = sqlSession.selectList("findUsersByName", name);

在这个例子中,#{name} 是一个预处理的参数,MyBatis 会自动替换它为实际的参数值,并且将其转换为一个安全的 SQL 字符串。

注意,% 是 SQL 中用来匹配任意字符的通配符。在这个例子中,% 被添加到了参数的前后,所以它会匹配所有包含 “张三” 的用户名。

另外,如果你的参数在 SQL 语句中需要多次使用,你可以使用 CDATA 来避免它被多次转义。

<select id="findUsersByName" resultType="com.example.User">
  SELECT * FROM user WHERE name LIKE CONCAT('%', #{name}, '%')
</select>

在这个例子中,CONCAT 是 SQL 中的一个函数,用来连接字符串。这样就可以避免在 Java 代码中对参数进行处理,而是直接在 SQL 语句中进行处理。

发表评论

后才能评论