首页 > 其他分享 >MyBatis Plus 分页查询操作

MyBatis Plus 分页查询操作

时间:2024-05-26 23:06:36浏览次数:22  
标签:dto 分页 封装 查询 Plus MyBatis query page

 这里分页查询最重要的一步是对 查询条件和返回值 进行了统一封装

 现在有一个这样的表格要进行分页查询

下面是对其进行分页查询的全步骤

 首先需要封装统一的查询条件和统一的返回值

就是这两部分

 1.封装统一的查询条件

2.封装统一的返回值 

3.controller

4 .service

5. 实现

 @Override
    public PageDTO<UserVO> queryUserPage(UserQuery query) {
        String name= query.getName();
        Integer status = query.getStatus();
        //构建查询条件
        Page<User> page = Page.of(query.getPageNo(), query.getPageSize());
        //排序条件
        if(StrUtil.isNotEmpty(query.getSortBy())){
            //排序字段不为空
            page.addOrder(new OrderItem(query.getSortBy(),query.getIsAsc()));
        }else {
            //排序字段为空,默认按照更新时间排序
            page.addOrder(new OrderItem("update_time",false));
        }
        //分页查询
        Page<User> p = lambdaQuery()
                .like(name != null, User::getUsername, name)
                .eq(status != null, User::getStatus, status)
                .page(page);
        //封装vo结果
        PageDTO<UserVO> dto=new PageDTO<>();
        //总条数
        dto.setTotal(p.getTotal());
        //总页数
        dto.setPages(p.getPages());
        //当前页数据
        List<User> records = p.getRecords();
        if (CollUtil.isEmpty(records)){dto.setList(Collections.emptyList());return dto;}
        //拷贝vo
        dto.setList(BeanUtil.copyToList(records, UserVO.class));
        //返回查询结果
        return dto;
    }

6. 效果

标签:dto,分页,封装,查询,Plus,MyBatis,query,page
From: https://blog.csdn.net/weixin_74027659/article/details/139219102

相关文章

  • springboot+vue创建_2(分页)
    七、分页7.1//分页@PostMapping("/listPage")//publicList<Login00>listhu(@RequestBodyHashMapmap){publicList<Login00>listhu(@RequestBodyQueryPageParamqueryPageParam){//hashmap//System.out.println(......
  • MyBatis中的部分SQL语句
    在MyBatis的XML映射文件中,<if>标签用于实现动态SQL,根据条件决定是否包含某个子句。1<iftest="merchantId!=null">andmerchantId=#{merchantId}</if>这里的三个merchantId分别代表:第一个merchantId(test="merchantId!=null"中的merchantId):这是一个条件表达式的......
  • idea启动报错:java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory
    文章目录一、问题二、解决方法一、问题问题描述:idea整合Mybatis-plus的时候,启动报错:java.lang.NoClassDefFoundError:org/mybatis/logging/LoggerFactory二、解决方法可能原因:仔细检查了一下,发现mybatis-spring-boot-starter的包和mybatis-plus-boot-starter的......
  • MyBatis-Plus分页插件使用
    MyBatis-Plus分页插件使用官方文档https://baomidou.com/plugins/pagination/基本介绍MyBatis-Plus的分页插件PaginationInnerInterceptor提供了强大的分页功能,支持多种数据库,使得分页查询变得简单高效。使用:创建MybatisPlusConfig,并注入容器@Configurationpubl......
  • Django分页操作实例
    分页操作Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中Paginator对象Paginator(列表,int):返回分页对象,参数为列表数据,每面数据的条数属性count:对象总数num_pages:页面总数page_range:页码列表,从1开始,例如[1,2,3,4]方法page(num):下标以1开始......
  • MyBatis Plus 实现枚举类型转化 步骤
    1.在yaml文件中添加枚举处理器 2.编辑枚举项这里的@JsonValue对privatefinalStringdesc;注解,前端返回的值就是”正常“或”冻结“  3.将这里实体类的类型按照需要改为枚举类型 4.这时就可以将你的代码替换成枚举值了......
  • Mybatis学习(史上超详细)
    1、Mybatis简介:1.1、MyBatis历史MyBatis最初是Apache的一个开源项目iBatis,2010年6月这个项目由ApacheSoftwareFoundation迁移到了GoogleCode。随着开发团队转投GoogleCode旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。iBatis一词来源于“internet”......
  • formilyjs/element-plus 设置中文无效的原因
    工作中用到了这个库,但是使用国际化设置中文却不行,所以查看源码发现了不行的原因直接说结论,不浪费大家时间,不是使用方法有问题,就是这个库自身的bug,想要设置中文,要么改源码要么直接使用原生element原理分析先看看element是如何设置成中文的这是官网的写法,那么看看这个组件内......
  • Mybatis知识点回顾(一)【温故而知新】
    前言Mybatis:一款优秀的持久层框架,用于简化JDBC。MyBatis本是Apache的一个开源项目iBatis,2010年这个项目apache迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github。1.JDBC介绍JDBC(JavaDataBaseConnectivity),就是使用Java语言操作关系型数据库的一套API......
  • MyBatis进阶
    时间:2024-05-25星期五MyBatis高级特性MyBatis日志管理日志日志文件是用于记录系统操作事件的记录文件或文件集合日志保存历史数据,使诊断问题以及理解系统活动的重要依据SLF4J与Logback日志组件关系 SLF4j作为日志输出的门面,负责日志输出的表现;logback是对日志......