6.17

综合能力实训笔记

条件构造器 & 分页插件

一、教学目标

  1. 熟练使用 LambdaQueryWrapper 构建安全查询条件,避免硬编码字段名。
  2. 配置 MyBatis-Plus 分页插件,完成新闻数据带条件分页查询功能。
  3. 结合 Page 分页对象、条件构造器编写分页接口并测试访问。

二、核心知识点

  1. LambdaQueryWrapper
    类型安全的查询条件构造器,通过实体类方法引用 News::getTitle 代替字符串字段名,不会因字段改名导致SQL报错;支持等值、模糊、区间、排序、空值判断等各类查询条件,链式调用拼接查询逻辑。
  2. MyBatis-Plus 分页插件
    拦截执行的SQL语句,自动拼接 LIMIT 分页语法,同时额外执行统计总条数SQL;必须手动创建配置类注入插件Bean,否则分页只会查询全部数据,分页参数失效。
  3. Page 分页参数对象
    MP内置分页载体,构造传入当前页码、每页条数;封装分页全部信息:当前页、每页条数、总记录数、总页数、分页数据列表,接口直接返回该对象即可向前端传递完整分页信息。
  4. 带条件分页查询逻辑
    Page 对象负责分页参数,LambdaQueryWrapper 封装筛选条件,调用 service.page(page, wrapper) 一次性完成条件过滤+分页截断+总数统计,无需手写复杂分页SQL。

三、关键补充知识点(拓展)

  1. 普通 QueryWrapper 使用字符串字段,易出现拼写错误;Lambda 写法编译期校验,企业开发优先使用。
  2. 分页插件需指定数据库类型 DbType.MYSQL,适配不同数据库分页语法(MySQL LIMIT、Oracle ROWNUM)。
  3. 常用条件方法:like 模糊匹配、eq 等值查询、ge/le 大于小于、orderByDesc 排序、isNull/isNotNull 空判断。

四、简要操作步骤

  1. 创建 MP 配置类,注入分页插件 MybatisPlusInterceptor。
  2. 编写 News 实体、Mapper、Service 三层基础代码。
  3. 在 Controller 中接收前端分页参数、查询关键词。
  4. 实例化 LambdaQueryWrapper<News>,拼接标题模糊查询等条件。
  5. 新建 Page<News> 对象传入当前页、每页大小,调用 page 方法执行带条件分页。
  6. 启动项目,浏览器访问分页接口,查看分页数据、总条数与控制台生成的分页SQL。

五、测试效果

访问接口后返回分页JSON,包含 records(当前页数据)、total(总条数)、pages(总页数)、current(当前页)、size(每页条数);控制台打印两条SQL:一条带 LIMIT 的分页数据查询、一条 COUNT 统计总数。

posted @ 2026-06-18 14:02  裕达  阅读(25)  评论(0)    收藏  举报