iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >LambdaQueryWrapper 设置自定义排序
  • 210
分享到

LambdaQueryWrapper 设置自定义排序

mybatisjavaspring 2023-09-24 15:09:36 210人浏览 泡泡鱼
摘要

mybatisPlus版本 com.baomidou mybatis-plus-boot-starter 3.4.2 com.baomidou mybatis-plus-extension 3.4.2

mybatisPlus版本

    com.baomidou    mybatis-plus-boot-starter    3.4.2    com.baomidou    mybatis-plus-extension    3.4.2

定义MybatisPlus工具

import com.baomidou.mybatisplus.core.conditions.IsqlSegment;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.core.metadata.OrderItem;import com.xnt.product.common.core.core.domain.OrderBy;import com.xnt.product.common.core.exception.CustomException;import java.util.List;import static com.baomidou.mybatisplus.core.enums.SqlKeyWord.*;public class MybatisPlusUtil {        public static  void setOrderOne(LambdaQueryWrapper queryWrapper, String column, boolean asc) {        try {            ISqlSegment[] sqlSegments = {ORDER_BY, () -> column, asc ? ASC : DESC};            queryWrapper.getExpression().add(sqlSegments);        } catch (Exception e) {            e.printStackTrace();            throw new CustomException("设置排序出错:" + e.getMessage());        }    }        public static  void setOrder(LambdaQueryWrapper queryWrapper, OrderBy order) {        setOrderOne(queryWrapper, order.getColumn(), order.isAsc());    }        public static  void setOrder(LambdaQueryWrapper queryWrapper, List list) {        for (OrderBy order : list) {            setOrder(queryWrapper, order);        }    }        public static  void setOrderItem(LambdaQueryWrapper queryWrapper, OrderItem orderItem) {        setOrderOne(queryWrapper, orderItem.getColumn(), orderItem.isAsc());    }        public static  void setOrderItem(LambdaQueryWrapper queryWrapper, List list) {        for (OrderItem order : list) {            setOrderItem(queryWrapper, order);        }    }}

定义OrderBy实体类

@Datapublic class OrderBy {        @NotEmpty    private String column;        private boolean asc = true;        private boolean toUnder = false;    public String getColumn() {        return isToUnder() ? StrUtil.toUnderlineCase(column) : column;    }    public String getColumn(boolean toUnder) {        return toUnder ? StrUtil.toUnderlineCase(column) : column;    }        public OrderItem getOrderItem() {        return getOrderItem(isAsc(), isToUnder());    }        public OrderItem getOrderItem(boolean isAsc) {        return getOrderItem(isAsc, isToUnder());    }        public OrderItem getOrderItemToUnder(boolean isToUnder) {        return getOrderItem(isAsc(), isToUnder);    }        public OrderItem getOrderItem(String sort, boolean isToUnder) {        return getOrderItem(isAsc(), isToUnder);    }        public OrderItem getOrderItem(boolean isAsc, boolean isToUnder) {        String col = isToUnder ? StrUtil.toUnderlineCase(column) : column;        return OrderItemUtils.getOrder(col, isAsc);    }        public String getSql(){        return (isToUnder() ? StrUtil.toUnderlineCase(column) : column) + (this.isAsc()? " asc":" desc");    } }

使用自定义排序

1、获取前段参数

public List getOrderBys() {        String order = ServletUtils.getParameter(PageConstants.ORDER);        if (ObjectUtil.isEmpty(order)) {            return null;        }        List orderByList = new ArrayList<>();        if (JSONUtil.isTypejsONArray(order)) {            orderByList.addAll(JsonUtil.toList(order, OrderBy.class));        } else {            orderByList.add(JsonUtil.parse(order, OrderBy.class));        }        return orderByList;    }

2、调用工具类

public List getList(SysOperLog operLog) {        LambdaQueryWrapper lambda = getLambda();           List list = getOrderItems();        if (ObjectUtils.isNotEmpty(list)) {            MybatisPlusUtil.setOrderItem(lambda, list);        } else {            lambda.orderByDesc(SysOperLog::getOperTime);        }        return super.list(lambda);    }

来源地址:https://blog.csdn.net/qq_43040552/article/details/129276021

--结束END--

本文标题: LambdaQueryWrapper 设置自定义排序

本文链接: https://www.lsjlt.com/news/416942.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • LambdaQueryWrapper 设置自定义排序
    MybatisPlus版本 com.baomidou mybatis-plus-boot-starter 3.4.2 com.baomidou mybatis-plus-extension 3.4.2 ...
    99+
    2023-09-24
    mybatis java spring
  • Win7怎么设置给图片文件自定义排序?
    怎么样才能按照看图软件的排序规则呢,我们可以通过设置一下win7来改变。 1、在开始菜单搜索框里输入“gpedit.msc”,或者“运行” 2、打开组策略编辑器 3、依次...
    99+
    2023-06-11
    Win7 文件排序 文件 图片
  • Python 自定义类的排序
    Python 里面自定义类的时候, 一般需要重写几个方法, __init__ 一般是构造函数 这里面有一个__cmp__() 是比较函数, 重写它的时候,一定要记得返回值有三个,0,±1  !! 而不是返回0,1   这里没有注意,导致在...
    99+
    2023-01-31
    自定义 Python
  • excel排序怎么按照自定义序列排序
    这篇文章主要介绍“excel排序怎么按照自定义序列排序”,在日常操作中,相信很多人在excel排序怎么按照自定义序列排序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”excel排序怎么按照自定义序列排序”的疑...
    99+
    2023-07-02
  • MySql自定义排序 order by field()
    前言 MySQL中 order by 自定义值排序 项目场景: 数据库表中有一个 status 字段,表示各个状态值,如下  smallint DEFAULT NULL COMMENT '项目状态(0 未发布,1 即将开始,2 拍卖中,3 ...
    99+
    2023-09-03
    mysql 数据库 database
  • MySQL自定义排序方法详解
    MySQL自定义排序方法详解 在MySQL中,我们通常使用ORDER BY语句进行排序,但是有时候我们需要进行特殊的排序操作,比如按照某些字段的特定值进行排序。这时候就需要用到MySQL中的自定义排序方法。本文将为大家详细介绍MySQL中的...
    99+
    2023-09-03
    数据库 mysql java
  • mybatis-plus自定义排序的实现
    目录需求:1.导入依赖2.配置文件3.创建分页需要的缓存4.创建实体类5.mapper6.测试7.结果需求: 先时间升序排序,相同的时间在按状态排序,状态的顺序为1 在线 4 潜伏 ...
    99+
    2023-01-09
    mybatis-plus 自定义排序 mybatis-plus 排序
  • MySQl中如何自定义时间排序
    今天就跟大家聊聊有关MySQl中如何自定义时间排序,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MySQl时间自定义排序 SELEC...
    99+
    2024-04-02
  • Hadoop中怎么自定义输出排序
    本篇文章为大家展示了Hadoop中怎么自定义输出排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。package com.hgs;import java.io.DataInput...
    99+
    2023-06-02
  • DataGridView中怎么实现自定义排序
    要在DataGridView中实现自定义排序,可以通过实现DataGridView的SortCompare事件来实现。SortCom...
    99+
    2024-03-12
    DataGridView
  • Python3怎么实现自定义比较排序
    本篇内容介绍了“Python3怎么实现自定义比较排序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!自定义比较排序/运算符Python3和Py...
    99+
    2023-06-29
  • pgsql自定义排序的方法是什么
    在 PostgreSQL 中,可以通过创建自定义排序规则来实现自定义排序。以下是实现自定义排序的一般方法: 创建自定义排序规则函...
    99+
    2024-04-09
    pgsql
  • PyCharm怎样设置自定义字体_PyCharm设置自定义字体的方法
    首先,我们pycharm软件中找到他的自定义字体。 然后,我们可以爸这个命令进行打开。 此时,我们就能在这里设置他的字体。 于是,我们可以在这里下拉选择字体。 那么,我们还能设置...
    99+
    2024-05-10
    pycharm
  • java如何自定义List中的sort()排序,用于日期排序
    目录java 自定义List中的sort()排序1、问题描述2、解决方法3、其他java Collections类:sort()升序排序正向排序java 自定义List中的sort(...
    99+
    2024-04-02
  • mysql按照自定义(指定顺序)排序的方法实例
    目录一、mysql中实现指定排序需求二、解决方案1:自定义排序实现01. case when 转换实现自定义排序;02:mysql排序函数filed 实现自定义排序(推荐);03:函...
    99+
    2024-04-02
  • java如何自定义List中的sort()排序且用于日期排序
    本篇文章给大家分享的是有关java如何自定义List中的sort()排序且用于日期排序,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。java 自定义List中的sort()排序...
    99+
    2023-06-25
  • c++ sort自定义排序的方法是什么
    在C++中,可以使用std::sort函数来对容器进行排序。如果需要自定义排序方法,可以使用函数指针、函数对象或lambda表达式来...
    99+
    2023-10-21
    c++
  • Pandas自定义选项option设置
    目录简介常用选项get/set 选项经常使用的选项最大展示行数超出数据展示最大列的宽度显示精度零转换的门槛列头的对齐方向简介 pandas有一个option系统可以控制pandas...
    99+
    2024-04-02
  • PHP中自定义排序的方法有哪些
    在PHP中,可以使用以下方法来定义自定义排序: 使用usort()函数:usort()函数用于对数组进行排序,可以自定义排序规则。...
    99+
    2024-04-02
  • Python3实现自定义比较排序/运算符
    目录自定义比较排序/运算符1.cmp函数2.重写类方法Python3实现各种排序方法自定义比较排序/运算符 Python3和Python2相比有挺多变化。 在Python2中可以直接...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作