mybatisplus lambdaQuery between 为空时不查询
在MyBatis Plus中,可以使用LambdaQueryWrapper来构建查询条件,并使用between方法来指定范围查询。如果某个条件为空,可以使用StringUtils的isNotBlank方法来判断,如果不为空,则添加查询条件,如果为空,则不添加该查询条件。
以下是一个示例代码:
String startTime = "2021-01-01";
String endTime = "2021-12-31";
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)) {
queryWrapper.between(User::getCreateTime, startTime, endTime);
}
List<User> userList = userMapper.selectList(queryWrapper);
在上述示例中,首先定义了一个LambdaQueryWrapper对象queryWrapper。然后使用StringUtils.isNotBlank方法判断startTime和endTime是否为空,如果都不为空,则调用between方法添加查询条件。最后使用selectList方法执行查询。
注意:在使用之前,需要导入StringUtils类,可以使用Apache Commons Lang等工具类库提供的StringUtils类,也可以自己实现一个类似的方法来判断字符串是否为空。
另外,如果between查询的字段类型不是字符串类型,需要根据实际情况进行类型转换
原文地址: https://www.cveoy.top/t/topic/hPtJ 著作权归作者所有。请勿转载和采集!