尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

25.条件构造器 分页插件

25.条件构造器  分页插件
📅 发布时间:2026/7/9 12:14:59

课次25:条件构造器 & 分页插件

一、教学目标

  • 使用LambdaQueryWrapper构建查询条件。
  • 配置MyBatis-Plus分页插件,实现新闻分页查询。

二、核心知识点(简要)

  • LambdaQueryWrapper:类型安全的查询条件构造器。
  • 分页插件:自动拦截SQL添加LIMIT,并查询总记录数。
  • Page:分页参数对象。

三、操作步骤

  1. 创建分页配置类:

    • 右键com.weitoutiao,创建config.MyBatisPlusConfig类

      ![image-20260614190220942](课次25:条件构造器 & 分页插件.assets/image-20260614190220942.png)

      ![image-20260614190654638](课次25:条件构造器 & 分页插件.assets/image-20260614190654638.png)

    • 类中代码如下:

      package com.weitoutiao.config;import com.baomidou.mybatisplus.annotation.DbType;
      import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
      import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
      import org.springframework.context.annotation.Bean;
      import org.springframework.context.annotation.Configuration;@Configuration
      public class MyBatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();// 创建分页插件并指定数据库类型(根据实际使用的数据库选择)PaginationInnerInterceptor paginationInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);// 可选:超出最大页码时是否处理(false表示返回空数据,true表示返回最后一页)paginationInterceptor.setOverflow(false);// 将分页插件添加到拦截器容器[reference:0]interceptor.addInnerInterceptor(paginationInterceptor);return interceptor;}
      }
      
  2. 创建Service(使用MyBatis-Plus的IService):

    • 右键com.weitoutiao,创建service.NewsService类

      ![image-20260614194139465](课次25:条件构造器 & 分页插件.assets/image-20260614194139465.png)

    • NewsService中的代码如下:

      package com.weitoutiao.service;import com.baomidou.mybatisplus.extension.service.IService;
      import com.weitoutiao.entity.News;public interface NewsService extends IService<News> {
      }
      
    • 右键service,创建impl.NewsServiceImpl的实现类

      ![image-20260614194524770](课次25:条件构造器 & 分页插件.assets/image-20260614194524770.png)

      ![image-20260614194543234](课次25:条件构造器 & 分页插件.assets/image-20260614194543234.png)

    • NewsServiceImpl中的代码如下:

      package com.weitoutiao.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
      import com.weitoutiao.entity.News;
      import com.weitoutiao.mapper.NewsMapper;
      import com.weitoutiao.service.NewsService;
      import org.springframework.stereotype.Service;@Service
      public class NewsServiceImpl extends ServiceImpl<NewsMapper, News> implements NewsService {
      }
      
  3. 测试分页

    • 打开test文件夹中的testSelect文件,在代码最后添加如下测试代码:

      @SpringBootTest
      class NewsServiceTest {@Autowiredprivate NewsService newsService;@Testvoid testPage() {Page<News> page = new Page<>(1, 5);LambdaQueryWrapper<News> wrapper = new LambdaQueryWrapper<>();wrapper.orderByDesc(News::getPublishTime);Page<News> result = newsService.page(page, wrapper);System.out.println("总记录数:" + result.getTotal());System.out.println("当前页数据:" + result.getRecords());}
      }
      
    • 红色错误的代码,可以鼠标悬停到错误位置上,选择导入类即可解决

      ![image-20260614195411202](课次25:条件构造器 & 分页插件.assets/image-20260614195411202.png)

    • 点击testPage旁边的运行按钮,进行测试

      ![image-20260614195531894](课次25:条件构造器 & 分页插件.assets/image-20260614195531894.png)

    • 会报如下错误:

    • 因为 MyBatis-Plus 开启了逻辑删除功能,但 news 表中没有 deleted 字段。

      ![image-20260614200328179](课次25:条件构造器 & 分页插件.assets/image-20260614200328179.png)

  4. 所以需要打开SQLyog, 在查询中执行如下语句

    ALTER TABLE `news` ADD COLUMN `deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除(0未删除,1已删除)';
    
    • 在SQLyog中,先选中该条语句,再点击执行

      ![image-20260614200656882](课次25:条件构造器 & 分页插件.assets/image-20260614200656882.png)

    • 点刷新,表中就会多一列deleted

      ![image-20260614200802910](课次25:条件构造器 & 分页插件.assets/image-20260614200802910.png)

  5. 回到IDEA中,再执行testPage的测试,还会报如下错误

    ![image-20260614201116760](课次25:条件构造器 & 分页插件.assets/image-20260614201116760.png)

    • 需要在SQLyog中再执行如下语句:

      ALTER TABLE `news` 
      ADD COLUMN `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间';
      
  6. 回到IDEA中,再执行testPage的测试,程序log已成功打印

    ![image-20260614201619524](课次25:条件构造器 & 分页插件.assets/image-20260614201619524.png)

相关新闻

  • 基于LCU API的英雄联盟客户端工具包架构设计与技术实现
  • 厦门专业中职学校排行:适配本地产业的5家实力院校 - 奔跑123
  • 2026年安徽普高落榜择校指南,适合低分孩子的学校推荐 - 小张zc

最新新闻

  • 如何用6个插件彻底解决Unity游戏马赛克问题:完整实战指南
  • 收藏!小白程序员必看:掌握Orchestration,驾驭AI Agent团队高效协作!
  • git fetch --prune 中 --prune 的含义
  • 具身智能数据采集:从场景稀缺到规模化落地的技术路径
  • 高性能高精度快稳国产铷原子钟产品分析,高精度铷钟,国产原子钟
  • 紫外固化水凝胶选材解析:为什么优先选用 HO-PEG-AC?

日新闻

  • SQL 查询语句的标准逻辑执行顺序(即语义处理顺序),它与实际书写顺序不同,但决定了数据库如何解析和执行查询
  • ORB-SLAM2 重定位模块深度解析:从 BoW 候选帧到 PnP 优化的 6 步流程
  • 罗技鼠标宏压枪脚本终极指南:从原理到实战的完整解析

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号