mybatis-plus xml or语句怎么写
时间: 2023-11-22 08:52:47 浏览: 229
Mybatis-Plus 的 OR 查询可以使用 `wrapper.or()` 方法来实现。具体的语法如下:
```xml
<select id="selectUserList" resultMap="userMap">
SELECT id, name, age, email
FROM user
<where>
<if test="name != null and name != ''">
AND name like CONCAT('%', #{name}, '%')
</if>
<if test="age != null">
AND age = #{age}
</if>
<if test="ids != null and ids.size() > 0">
<foreach item="item" index="index" collection="ids" open="AND ("
separator=" OR " close=")">
id = #{item}
</foreach>
</if>
</where>
</select>
```
在这个例子中,我们使用了 `<foreach>` 标签来循环遍历 `ids` 集合,生成 OR 条件。如果 `ids` 集合为空,则不会生成 OR 条件。
除了 XML 配置之外,还可以使用 Mybatis-Plus 的 Lambda 表达式来实现 OR 查询。例如:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.lambda().eq(User::getAge, 18)
.or().like(User::getName, "Tom")
.or().in(User::getId, Arrays.asList(1, 2, 3));
List<User> userList = userMapper.selectList(wrapper);
```
这个例子中,我们使用了 `wrapper.lambda().or()` 方法来实现 OR 查询。其中,`User::getAge`、`User::getName` 和 `User::getId` 是 Lambda 表达式,分别表示获取 User 对象的 age、name 和 id 属性。
阅读全文