LambdaQueryWrapper.likeIfPresent
时间: 2023-07-17 16:03:22 浏览: 693
`LambdaQueryWrapper.likeIfPresent` 是 MyBatis-Plus 框架中的一个查询条件构造器方法。该方法用于在查询条件中添加一个模糊查询条件,如果传入的值不为空则生效,否则忽略该条件。
具体使用方式如下:
```java
LambdaQueryWrapper<Entity> wrapper = new LambdaQueryWrapper<>();
wrapper.likeIfPresent(StringUtils.isNotBlank(keyword), Entity::getName, keyword);
List<Entity> entities = entityMapper.selectList(wrapper);
```
上述代码中,`wrapper.likeIfPresent` 判断了 `keyword` 是否为空,如果不为空,则添加一个按 `name` 字段进行模糊查询的条件。
请注意,`StringUtils.isNotBlank` 是 Apache Commons Lang 库中的一个工具方法,用于判断字符串是否不为空、不为 null 和不只包含空白字符。
希望能够帮到您!如果还有其他问题,请随时提问。
相关问题
lambdaQueryWrapper.ge和lambdaQueryWrapper.eq
在MyBatis Plus中,`lambdaQueryWrapper.ge()` 和 `lambdaQueryWrapper.eq()` 是两个常用的动态查询方法,用于构建SQL查询语句。它们分别对应SQL中的 ">= (大于等于)" 和 "=" 操作符。
- `lambdaQueryWrapper.ge(field, value)`:这个方法用于在查询条件中设置某个字段(field)的值应大于等于指定的value。例如,如果你有一个用户表,你想查询所有年龄大于等于18岁的用户,你可以这样写:`UserMapper::selectList .eq(User::age, 18);`
- `lambdaQueryWrapper.eq(field, value)`:这个方法则是将字段值设置为精确匹配,即查询结果中字段的值等于给定的value。同样,比如查询所有年龄为18岁的用户,你会用到它:`UserMapper::selectList .eq(User::age, 18)`;
这两个方法结合使用可以让你方便地构造复杂的查询条件,无需手动拼接SQL字符串,提高了代码的可读性和维护性。当你需要根据业务逻辑动态调整查询条件时,使用这种方式非常有效。
lambdaQueryWrapper.eq(StringUtils.isNotEmpty(dto.getStatus()), AdminInspectionTaskBasicInfo::getStatus, dto.getStatus()); 和 lambdaQueryWrapper.eq(StringUtil.isNotEmpty(dto.getStatus()), AdminInspectionTaskBasicInfo::getStatus, dto.getStatus());一样吗
是的,lambdaQueryWrapper.eq(StringUtils.isNotEmpty(dto.getStatus()), AdminInspectionTaskBasicInfo::getStatus, dto.getStatus()) 和 lambdaQueryWrapper.eq(StringUtil.isNotEmpty(dto.getStatus()), AdminInspectionTaskBasicInfo::getStatus, dto.getStatus()) 是等价的。这两个语句都是用来构建 MyBatis-Plus 的查询条件,判断 dto.getStatus() 是否为空或者是否为空字符串,如果不为空则添加一个等值查询条件,查询 AdminInspectionTaskBasicInfo 表中的状态列等于 dto.getStatus() 的数据。其中 StringUtils.isNotEmpty() 和 StringUtil.isNotEmpty() 都是判断字符串是否不为空的方法,只是实现方式不同而已。
阅读全文