6.17
综合能力实训笔记
条件构造器 & 分页插件
一、教学目标
- 熟练使用
LambdaQueryWrapper构建安全查询条件,避免硬编码字段名。 - 配置 MyBatis-Plus 分页插件,完成新闻数据带条件分页查询功能。
- 结合 Page 分页对象、条件构造器编写分页接口并测试访问。
二、核心知识点
- LambdaQueryWrapper
类型安全的查询条件构造器,通过实体类方法引用News::getTitle代替字符串字段名,不会因字段改名导致SQL报错;支持等值、模糊、区间、排序、空值判断等各类查询条件,链式调用拼接查询逻辑。 - MyBatis-Plus 分页插件
拦截执行的SQL语句,自动拼接LIMIT分页语法,同时额外执行统计总条数SQL;必须手动创建配置类注入插件Bean,否则分页只会查询全部数据,分页参数失效。 - Page 分页参数对象
MP内置分页载体,构造传入当前页码、每页条数;封装分页全部信息:当前页、每页条数、总记录数、总页数、分页数据列表,接口直接返回该对象即可向前端传递完整分页信息。 - 带条件分页查询逻辑
Page 对象负责分页参数,LambdaQueryWrapper 封装筛选条件,调用service.page(page, wrapper)一次性完成条件过滤+分页截断+总数统计,无需手写复杂分页SQL。
三、关键补充知识点(拓展)
- 普通
QueryWrapper使用字符串字段,易出现拼写错误;Lambda 写法编译期校验,企业开发优先使用。 - 分页插件需指定数据库类型
DbType.MYSQL,适配不同数据库分页语法(MySQL LIMIT、Oracle ROWNUM)。 - 常用条件方法:
like模糊匹配、eq等值查询、ge/le大于小于、orderByDesc排序、isNull/isNotNull空判断。
四、简要操作步骤
- 创建 MP 配置类,注入分页插件 MybatisPlusInterceptor。
- 编写 News 实体、Mapper、Service 三层基础代码。
- 在 Controller 中接收前端分页参数、查询关键词。
- 实例化
LambdaQueryWrapper<News>,拼接标题模糊查询等条件。 - 新建
Page<News>对象传入当前页、每页大小,调用 page 方法执行带条件分页。 - 启动项目,浏览器访问分页接口,查看分页数据、总条数与控制台生成的分页SQL。
五、测试效果
访问接口后返回分页JSON,包含 records(当前页数据)、total(总条数)、pages(总页数)、current(当前页)、size(每页条数);控制台打印两条SQL:一条带 LIMIT 的分页数据查询、一条 COUNT 统计总数。

浙公网安备 33010602011771号