当前位置: 首页 > wzjs >正文

品牌网站设计打造wordpress 4.9 正式版

品牌网站设计打造,wordpress 4.9 正式版,网站开发用什么后端框架,建设返利优惠券网站MyBatis-Plus 分页功能详解 1. 前言 MyBatis-Plus 是 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,简化开发、提高效率。其中分页功能是日常开发中非常常用的功能,本文将详细介绍 MyBatis-Plus 的分页功能使用。 2. 配置分页…

MyBatis-Plus 分页功能详解

1. 前言

MyBatis-Plus 是 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,简化开发、提高效率。其中分页功能是日常开发中非常常用的功能,本文将详细介绍 MyBatis-Plus 的分页功能使用。

2. 配置分页插件

首先需要在 Spring Boot 项目中配置分页插件:

@Configuration
public class MybatisPlusConfig {/*** 分页插件配置*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}

3. 基本分页查询

3.1 使用 Page 对象

@GetMapping("/page")
public R<IPage<User>> page(@RequestParam(defaultValue = "1") int current, @RequestParam(defaultValue = "10") int size) {// 创建分页对象Page<User> page = new Page<>(current, size);// 执行分页查询IPage<User> userPage = userService.page(page);return R.ok(userPage);
}

3.2 带条件的分页查询

@GetMapping("/pageByCondition")
public R<IPage<User>> pageByCondition(@RequestParam(defaultValue = "1") int current,@RequestParam(defaultValue = "10") int size,String name) {Page<User> page = new Page<>(current, size);LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();wrapper.like(StringUtils.isNotBlank(name), User::getName, name);IPage<User> userPage = userService.page(page, wrapper);return R.ok(userPage);
}

4. 自定义SQL分页

4.1 Mapper 接口

public interface UserMapper extends BaseMapper<User> {/*** 自定义分页查询* @param page 分页对象* @param state 状态* @return 分页结果*/IPage<User> selectPageByCustom(@Param("page") Page<User> page, @Param("state") Integer state);
}

4.2 XML 映射文件

<select id="selectPageByCustom" resultType="com.example.entity.User">SELECT * FROM user WHERE state = #{state}
</select>

4.3 使用自定义分页

@GetMapping("/customPage")
public R<IPage<User>> customPage(@RequestParam(defaultValue = "1") int current,@RequestParam(defaultValue = "10") int size,Integer state) {Page<User> page = new Page<>(current, size);IPage<User> userPage = userMapper.selectPageByCustom(page, state);return R.ok(userPage);
}

5. 分页结果处理

MyBatis-Plus 的分页结果 IPage 对象包含以下常用属性:

  • records: 当前页的数据列表
  • total: 总记录数
  • size: 每页显示条数
  • current: 当前页
  • pages: 总页数

可以对这些数据进行处理后再返回给前端:

@GetMapping("/pageWithProcess")
public R<Map<String, Object>> pageWithProcess(@RequestParam(defaultValue = "1") int current,@RequestParam(defaultValue = "10") int size) {Page<User> page = new Page<>(current, size);IPage<User> userPage = userService.page(page);Map<String, Object> result = new HashMap<>();result.put("list", userPage.getRecords());result.put("total", userPage.getTotal());result.put("pageSize", userPage.getSize());result.put("currentPage", userPage.getCurrent());result.put("totalPages", userPage.getPages());return R.ok(result);
}

6. 分页优化

6.1 不查询总记录数

对于大数据量的分页,如果不需要知道总记录数,可以设置不查询 count:

@GetMapping("/pageWithoutCount")
public R<IPage<User>> pageWithoutCount(@RequestParam(defaultValue = "1") int current,@RequestParam(defaultValue = "10") int size) {Page<User> page = new Page<>(current, size, false);IPage<User> userPage = userService.page(page);return R.ok(userPage);
}

6.2 最大单页限制

可以配置分页插件的最大单页限制:

@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);// 设置最大单页限制数量,默认 500 条,-1 不受限制paginationInnerInterceptor.setMaxLimit(1000L);interceptor.addInnerInterceptor(paginationInnerInterceptor);return interceptor;
}

7. 常见问题

7.1 分页失效

如果发现分页没有生效,请检查:

  1. 是否配置了分页插件
  2. 分页参数是否正确传递
  3. 是否在分页查询前创建了 Page 对象

7.2 性能问题

对于大数据量表的分页查询,建议:

  1. 使用索引优化查询
  2. 对于深度分页,考虑使用游标分页等方式
  3. 合理设置分页大小

8. 总结

MyBatis-Plus 的分页功能简单易用,通过配置分页插件后,可以方便地实现各种分页需求。本文介绍了基本分页查询、带条件分页、自定义SQL分页等多种使用方式,以及分页结果处理和性能优化建议。

希望本文对你理解和使用 MyBatis-Plus 的分页功能有所帮助!

http://www.dtcms.com/wzjs/803775.html

相关文章:

  • 秦皇岛网站开发公司电话订阅号可以做微网站
  • 设计logo免费网站汕头论坛贴吧
  • sharepoint做门户网站一键生成详情页的软件
  • 门户网站开发架构浦口区网站建设
  • python写网站莱芜网站建设怎么样
  • 云南省建设厅标准员网站论坛网站在线生成
  • 做商城网站哪里好违法网站开发者
  • 网站开发培训深圳北京厦门网站优化
  • 网站建设要做哪些前期准备工作中国建筑网官网查询阮国方
  • 产品做网站如何谁来维护价格网站生成word
  • 自己有网站源码就可以建设吗湘潭网站设计外包公司
  • 筹备网站建设彩票网站怎么做推广
  • 合肥网页设计公司校企合作网站地图seo
  • 门户网站的案例分析开发公司总经理岗位职责
  • 网站建设与网页设计...一元购物网站开发
  • wordpress主题 排名wordpress seo文件
  • 网站建设柒首先金手指8确保网站建设又在前列
  • 找能做网站的wordpress特效主题免费
  • 电商网站开发流程图中山百度关键词搜索
  • 大淘客做的网站可以吗软件技术的了解
  • 网站开发引发的官司重庆公司网站制作公司
  • 平顶山建设街小学网站网页版微信网址是多少
  • 学院门户网站建设自评厦门网站建设系统
  • 微网站在哪个平台上搭建好 知乎常用的网站建设技术有
  • 专业做网站开发公司国内建站平台
  • 湛江做网站设计公司成都解放号网站建设
  • 西安高校定制网站建设php 企业网站管理系统
  • 桐乡网站设计怎么做打鱼网站
  • wordpress切换php版本seo百度网站排名软件
  • 中国建设银行网站属于什么机构叙述一个网站开发流程