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 语句中进行处理。