MyBatis-Plus分页查询方式

分页查询基本方式

java 复制代码
@SpringBootTest(classes = LearningApplication.class)
public class MPTest {
    @Autowired
    ILearningLessonService lessonService;

    @Test
    public void test(){
        /**
         * Page<LearningLesson>:MyBatisPlus提供的分页对象
         * 1:当前页数
         * 2:每页显示的记录数
         */
        Page<LearningLesson> page = new Page<>(1, 2);

        /**
         * wrapper:使用Lambda表达式构造的查询条件。
         */
        LambdaQueryWrapper<LearningLesson> wrapper = new LambdaQueryWrapper<>();
        //用户 id 等于 2 的记录
        wrapper.eq(LearningLesson::getUserId, 2);
        
        //业务层的服务类调用分页查询方法   (page, wrapper) -> (分页对象,查询条件)
        lessonService.page(page, wrapper);
    }

按照某一字段升序或者降序排序

java 复制代码
	@Test
    public void test1(){
        Page<LearningLesson> page = new Page<>(1, 2);

		/**
		*构建按照什么字段进行排序
		*/
        List<OrderItem> itemList = new ArrayList<>();
        //指定排序的对象
        OrderItem item = new OrderItem();
        item.setColumn("latest_learn_time");//按什么latest_learn_time字段排序
        item.setAsc(false);//降序排序
        itemList.add(item);
        //排序条件添加到分页对象中
        page.addOrder(itemList);

        LambdaQueryWrapper<LearningLesson> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(LearningLesson::getUserId, 2);
        lessonService.page(page, wrapper);
    }

简化写法

java 复制代码
    @Test
    public void test2(){
    	//分页对象
        Page<LearningLesson> page = new Page<>(1, 2);
		
		//构建分页查询条件
        List<OrderItem> itemList = new ArrayList<>();
        OrderItem item = new OrderItem();
        item.setColumn("latest_learn_time");
        item.setAsc(false);
        itemList.add(item);
        page.addOrder(itemList);
        
        //构造查询条件和调用分页查询方法一起。
        lessonService.lambdaQuery()
                .eq(LearningLesson::getUserId,2)
                .page(page);
    }
相关推荐
华仔啊17 小时前
千万别给数据库字段加默认值 null!真的会出问题
java·数据库·后端
老赵全栈实战20 小时前
【每日一技MyBatis trim标签核心用法
java·mybatis·orm
beata20 小时前
Java基础-19:Java 死锁深度解析:从原理、检测到预防与实战指南
java·前端
吾日三省Java1 天前
Spring Cloud架构下的日志追踪:传统MDC vs 王炸SkyWalking
java·后端·架构
爱玩泥巴的小t1 天前
new Thread().start()底层做了什么?
java
码路飞1 天前
GPT-5.4 Computer Use 实战:3 步让 AI 操控浏览器帮你干活 🖥️
java·javascript
祈安_1 天前
Java实现循环队列、栈实现队列、队列实现栈
java·数据结构·算法
皮皮林5512 天前
拒绝写重复代码,试试这套开源的 SpringBoot 组件,效率翻倍~
java·spring boot
顺风尿一寸2 天前
从 Java NIO poll 到 Linux 内核 poll:一次系统调用的完整旅程
java
程途知微2 天前
JVM运行时数据区各区域作用与溢出原理
java