当前位置: 首页 > news >正文

玉器企业网站源码wordpress外观小工具

玉器企业网站源码,wordpress外观小工具,建筑工程完工证明范本,河南做网站汉狮一、分页插件注意&#xff1a;用的是mybatisplus的&#xff0c;不是hutool工具包的在mybatisplus实现分页插件&#xff0c;第一步先在mybatisplus核心插件添加分页插件。编写分页查询代码二、统一分页实体这是返回值Overridepublic PageDTO<UserVO> queryUsersPage(UserQ…

一、分页插件

注意:用的是mybatisplus的,不是hutool工具包的

在mybatisplus实现分页插件,第一步先在mybatisplus核心插件添加分页插件。

编写分页查询代码

二、统一分页实体

这是返回值

@Overridepublic PageDTO<UserVO> queryUsersPage(UserQuery query) {String name = query.getName();Integer status = query.getStatus();//1、构造查询条件//1.1.分页条件Page<User> page = Page.of(query.getPageNo(), query.getPageSize());//1.2.排序条件if(query.getSortBy()!=null){page.addOrder(new OrderItem(query.getSortBy(),query.getIsAsc()));}else {//按照默认修改时间排序page.addOrder(new OrderItem("update_time",false));}//2、查询Page<User> p = lambdaQuery().like(name != null, User::getUsername, name).eq(status != null, User::getStatus, status).page(page);//3、封装VO结果PageDTO<UserVO> dto = new PageDTO<>();//3.1.总条数dto.setTotal(p.getTotal());//3.2.总页数dto.setPages(p.getPages());//3.3.当前页数据List<User> records = p.getRecords();if (CollUtil.isEmpty(records)){dto.setList(Collections.emptyList());return dto;}//3.4.拷贝user的VOList<UserVO> vos = BeanUtil.copyToList(records, UserVO.class);dto.setList(vos);return dto;}

下面这个采用了DB静态工具

@Override
public PageDTO<UserVO> queryUsersPage(PageQuery query) {// 1.构建条件// 1.1.分页条件Page<User> page = Page.of(query.getPageNo(), query.getPageSize());// 1.2.排序条件if (query.getSortBy() != null) {page.addOrder(new OrderItem(query.getSortBy(), query.getIsAsc()));}else{// 默认按照更新时间排序page.addOrder(new OrderItem("update_time", false));}// 2.查询page(page);// 3.数据非空校验List<User> records = page.getRecords();if (records == null || records.size() <= 0) {// 无数据,返回空结果return new PageDTO<>(page.getTotal(), page.getPages(), Collections.emptyList());}// 4.有数据,转换List<UserVO> list = BeanUtil.copyToList(records, UserVO.class);// 5.封装返回return new PageDTO<UserVO>(page.getTotal(), page.getPages(), list);
}

三、通用分页实体与MP转换

就是把分页查询需要构建的查询条件,已经查询完后数据转换,抽到一个类中,需要时直接调它就行了

构建查询条件

public <T> Page<T> toMpPage(OrderItem ... items){//1.分页条件Page<T> page = Page.of(pageNo, pageSize);//2.排序条件if(StrUtil.isNotBlank(sortBy)){page.addOrder(new OrderItem(sortBy,isAsc));}else if(items!=null){//按照默认修改时间排序page.addOrder(items);}return page;}public <T> Page<T> toMpPage(String defaultSortBy,Boolean defaultAsc){return toMpPage(new OrderItem(defaultSortBy,defaultAsc));}public <T> Page<T> toMpPageDefaultSortByCreateTime(){return toMpPage(new OrderItem("create_time",false));}public <T> Page<T> toMpPageDefaultSortByUpdateTime(){return toMpPage(new OrderItem("update_time",false));}
//1、构造查询条件Page<User> page = query.toMpPageDefaultSortByUpdateTime();

数据类型转换

public static <PO,VO> PageDTO<VO> of(Page<PO> p,Class<VO> clazz){//3、封装VO结果PageDTO<VO> dto = new PageDTO<>();//3.1.总条数dto.setTotal(p.getTotal());//3.2.总页数dto.setPages(p.getPages());//3.3.当前页数据List<PO> records = p.getRecords();if (CollUtil.isEmpty(records)){dto.setList(Collections.emptyList());return dto;}//3.4.拷贝user的VOList<VO> vos = BeanUtil.copyToList(records, clazz);dto.setList(vos);return dto;}

当有特殊需求的数据转换,就用到函数式接口了

public static <PO,VO> PageDTO<VO> of(Page<PO> p, Function<PO,VO> convertor){//3、封装VO结果PageDTO<VO> dto = new PageDTO<>();//3.1.总条数dto.setTotal(p.getTotal());//3.2.总页数dto.setPages(p.getPages());//3.3.当前页数据List<PO> records = p.getRecords();if (CollUtil.isEmpty(records)){dto.setList(Collections.emptyList());return dto;}//3.4.拷贝user的VOdto.setList(records.stream().map(convertor).collect(Collectors.toList()));return dto;}

http://www.dtcms.com/a/597662.html

相关文章:

  • kotlin扩展函数是如何实现的
  • 农业科技工作服务站建站模板让网站不要保存密码怎么做
  • 深入学习Redis():Redis内存模型
  • 输出模式下,上下拉电阻不起作用的原因:
  • 如何让PVC制品更安全?稀土抑烟剂助力安全防护
  • Python基础教学-可迭代的(Iterable)和迭代器(iterator)的区别-由Deepseek产生
  • 摄影作品网站推荐网站全屏代码
  • 网站开发中加入cad功能一个空间能否做两个网站
  • SM2 vs RSA/ECC:双算法 SSL 证书的性能对比与优化方案
  • 使用微信小程序实现多格验证码效果
  • 用node.js可以做网站吗网站的发布与推广怎么写
  • 【JavaEE进阶】-- 加密算法
  • 58同城本地版下载优化设计高中
  • 入门|利用 Highcharts 的 ES6/ESM 模块安装方案
  • 【NGINX的学习】
  • 重庆南坪网站建设公司学校网站总务建设
  • C++ yjx
  • 网站开发原型 图站长工具星空传媒
  • 【C++进阶】C++中的继承
  • 【大模型量化】Qwen3-VL + Lora监督微调 + 4bit量化 | VLM模型
  • 哪个网站最好微信开发者文档小程序
  • 免费黄页网站互联网众筹网站怎样建设
  • Math for Grade 1 of junior high school
  • 卓手机建网站有没有专门找装修公司的网站
  • Goer-Docker系列-1-Dockerfile的构建速度优化
  • 【20251029】如何在Ubuntu虚拟机部署本地sql,redis
  • SQL注入之SQLMAP绕过WAF(安全狗)
  • 西安注册公司网站黄页是什么东西
  • BFF 相关学习
  • 【SAA】SpringAI Alibaba学习笔记(三):ChatModel对话记忆存储和持久化