MyBatis Plus分页时怎么实现排序
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,本篇内容主要讲解"MyBatis Plus分页时怎么实现排序",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"MyBatis Plus分页时怎么实现排序"吧!
千家信息网最后更新 2025年01月17日MyBatis Plus分页时怎么实现排序
本篇内容主要讲解"MyBatis Plus分页时怎么实现排序",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"MyBatis Plus分页时怎么实现排序"吧!
简介
分页时排序的方法
后端OrderItems排序
后端Wrapper排序
前端指定排序
排序涉及到的类
排序涉及到Page类的List
public class OrderItem implements Serializable { private static final long serialVersionUID = 1L; //需要进行排序的字段 private String column; // 是否正序排列,默认 true private boolean asc = true; ...}
建库建表
DROP DATABASE IF EXISTS mp;CREATE DATABASE mp DEFAULT CHARACTER SET utf8;USE mp; DROP TABLE IF EXISTS `t_user`;SET NAMES utf8mb4;CREATE TABLE `t_user`( `id` BIGINT(0) NOT NULL AUTO_INCREMENT, `user_name` VARCHAR(64) NOT NULL COMMENT '用户名(不能重复)', `nick_name` VARCHAR(64) NULL COMMENT '昵称(可以重复)', `email` VARCHAR(64) COMMENT '邮箱', `create_time` DATETIME(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', `deleted_flag` BIGINT(0) NOT NULL DEFAULT 0 COMMENT '0:未删除 其他:已删除', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `index_user_name_deleted_flag` (`user_name`, `deleted_flag`), KEY `index_create_time`(`create_time`)) ENGINE = InnoDB COMMENT = '用户';INSERT INTO `t_user` VALUES (1, 'knife', '刀刃', 'abc@qq.com', '2021-01-23 09:33:36', '2021-01-23 09:33:36', 0);INSERT INTO `t_user` VALUES (2, 'sky', '天蓝', '123@qq.com', '2021-01-24 18:12:21', '2021-01-24 18:12:21', 0);
执行后的结果:
依赖
pom.xml
4.0.0 org.springframework.boot spring-boot-starter-parent 2.3.12.RELEASE com.example MyBatis-Plus_Simple 0.0.1-SNAPSHOT MyBatis-Plus_Simple Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-web com.baomidou mybatis-plus-boot-starter 3.5.1 spring-boot-starter-test test mysql mysql-connector-java org.projectlombok lombok com.github.xiaoymin knife4j-spring-boot-starter 3.0.3 org.springframework.boot spring-boot-maven-plugin
配置
application.yml
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/mp?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: root password: 222333 #mybatis-plus配置控制台打印完整带参数SQL语句mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
分页插件的配置(必须)
package com.example.demo.config;import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;@Configurationpublic class MyBatisPlusConfig { /** * 分页插件 */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; }}
代码
Entity
package com.example.demo.user.entity; import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableId;import com.baomidou.mybatisplus.annotation.TableLogic;import com.baomidou.mybatisplus.annotation.TableName;import com.baomidou.mybatisplus.extension.activerecord.Model;import lombok.Data;import java.time.LocalDateTime;@Data@TableName(value = "t_user")public class User { @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 用户名(不能重复) */ private String userName; * 昵称(可以重复) private String nickName; * 邮箱 private String email; * 创建时间 private LocalDateTime createTime; * 修改时间 private LocalDateTime updateTime; * 0:未删除 其他:已删除 @TableLogic(delval = "id") private Long deletedFlag;}
Service
接口
package com.example.demo.user.service; import com.baomidou.mybatisplus.extension.service.IService;import com.example.demo.user.entity.User;public interface UserService extends IService{}
实现
package com.example.demo.user.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import com.example.demo.user.entity.User;import com.example.demo.user.mapper.UserMapper;import com.example.demo.user.service.UserService;import org.springframework.stereotype.Service;@Servicepublic class UserServiceImpl extends ServiceImplimplements UserService {}
Controller
package com.example.demo.user.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.core.metadata.OrderItem;import com.baomidou.mybatisplus.core.toolkit.Wrappers;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.example.demo.user.entity.User;import com.example.demo.user.service.UserService;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.List;@Api(tags = "排序")@RestController@RequestMapping("sort")public class SortController { @Autowired private UserService userService; @ApiOperation("默认顺序") @GetMapping("defaultOrder") public IPagedefaultOrder(Page page) { return userService.page(page); } @ApiOperation("通过orderItems") @GetMapping("orderItems") public IPage orderItems(Page page) { page.addOrder(OrderItem.desc("create_time")); // 可以指定多列。比如下边这个:按create_time排序,若create_time相同,则按id排序 // page.addOrder(OrderItem.desc("create_time"), OrderItem.asc("id")); @ApiOperation("通过wrapper") @GetMapping("wrapper") public IPage wrapper(Page page) { LambdaQueryWrapper queryWrapper = Wrappers. lambdaQuery(); // 按create_time排序,若create_time相同,则按id排序 queryWrapper.orderByDesc(User::getCreateTime); queryWrapper.orderByAsc(User::getId); return userService.page(page, queryWrapper); @ApiOperation("前端指定顺序") @GetMapping("byFrontEnd") public IPage byFrontEnd(Page page) {}
测试
访问Knife4j页面:http://localhost:8080/doc.html
1.不指定顺序
本处前端不传任何参数进行的测试。
2.后端OrderItem排序(create_time倒序)
本处前端不传任何参数进行的测试。
3.后端Wrapper排序(create_time倒序,id升序)
本处前端不传任何参数进行的测试。
4.前端指定排序(create_time倒序)
前端指定orders[0].asc和orders[0].column
结果:
到此,相信大家对"MyBatis Plus分页时怎么实现排序"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
排序
前端
参数
时间
测试
倒序
用户
顺序
配置
相同
内容
插件
方法
昵称
用户名
结果
邮箱
学习
实用
更深
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发人员求职简历模板
华为云弹性服务器ECS
联想拯救者笔记本做软件开发
上海会智网络技术有限公司
不属于软件开发的工具是
数据库定制显示
怎么才能保持网络安全
数据库指针移到第一条
长沙市中心医院网络安全
网络安全检测测隐私吗
opc 实时数据库
软件开发做什么生意好
网络安全渗透实验步骤
广州讯助互联网科技有限公司
河南系统软件开发定制费用
服务器连锁挖矿1.16
苏州戴尔服务器组装过程
移动终端开发软件开发
怎样备份数据库到u盘
东方智谷小蚂蚁服务器的编号
康师傅邮箱服务器
oracle数据库解释
云运动app显示服务器异常
护苗网络安全宣传手段
小学电子屏幕网络安全措施
校园网络安全类辩题
安全牛网络安全公司
数据库3级考的是什么
access管理软件开发
软件开发高级工程师专业