在XML中可以通过使用<foreach>标签来实现多个动态值的like条件。

例如,假设有一个User类,其中有一个name属性需要根据多个关键词进行模糊匹配,可以在mapper.xml文件中这样写:

<select id="findUsersByName" resultType="User">
  SELECT * FROM users
  WHERE 1=1
  <foreach collection="names" item="name" separator="OR">
    AND name LIKE CONCAT('%', #{name}, '%')
  </foreach>
</select>

其中,names是一个List<String>类型的参数,表示多个关键词,<foreach>标签会遍历这个列表,将每个关键词作为参数传入SQL语句中生成like条件。

在Java代码中,调用这个方法时需要传入一个包含多个关键词的列表:

List<String> names = Arrays.asList("John", "Doe");
List<User> users = sqlSession.selectList("findUsersByName", names);

原文地址: https://www.cveoy.top/t/topic/bFCe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录