mybatis-plus
使用mybatis-plus查询一张表,我想优先展示状态为置顶的字段,然后动态不是置顶的数据以创建时间最新排序,最后进行分页
可以使用Mybatis-plus的LambdaQueryWrapper来实现该查询条件,具体代码如下:
“`
// 构造LambdaQueryWrapper对象
LambdaQueryWrapperwrapper = new LambdaQueryWrapper ()
.orderByDesc(MyTable::getIsTop) // 置顶的排在前面
.orderByDesc(MyTable::getCreateTime) // 创建时间最新的排在前面
.orderByDesc(MyTable::getId) // ID大的排在前面,保证排序稳定性
.last(“limit ” + pageSize * (pageNum – 1) + “, ” + pageSize); // 分页// 添加动态查询条件
if (dynamicCondition != null) {
wrapper.and(dynamicCondition);
}// 执行查询
Listresult = myTableMapper.selectList(wrapper);
“`
其中,`MyTable`是需要查询的表对应的实体类,`myTableMapper`是对应的Mybatis-plus Mapper接口。`MyTable::getIsTop`、`MyTable::getCreateTime`和`MyTable::getId`是通过Java 8的方法引用指定的排序字段,`dynamicCondition`是动态查询条件,可根据具体业务进行设置,`pageSize`和`pageNum`是分页的参数,可根据具体业务进行设置。最后,通过`selectList`方法执行查询,返回结果集。2023年04月04日 17:25