news 2026/4/27 3:34:19

通用Mapper + PageHelper:MyBatis分页插件终极实战教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通用Mapper + PageHelper:MyBatis分页插件终极实战教程

通用Mapper + PageHelper:MyBatis分页插件终极实战教程

【免费下载链接】spring-boot-demo🚀一个用来深入学习并实战 Spring Boot 的项目。项目地址: https://gitcode.com/gh_mirrors/sp/spring-boot-demo

在Spring Boot开发中,MyBatis作为一款优秀的ORM框架被广泛应用。而通用Mapper和PageHelper作为MyBatis的两款实用插件,能够极大地简化数据访问层代码,提升开发效率。本文将为你详细介绍如何在Spring Boot项目中整合通用Mapper和PageHelper,实现高效的分页查询功能。

核心依赖配置

要使用通用Mapper和PageHelper,首先需要在项目的pom.xml文件中添加相关依赖。以demo-orm-mybatis-mapper-page模块为例,关键依赖如下:

<!-- 通用Mapper --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.5</version> </dependency> <!-- PageHelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.13</version> </dependency>

配置Mapper扫描

在Spring Boot应用主类上添加@MapperScan注解,指定Mapper接口所在的包路径。注意这里使用的是tk.mybatis.spring.annotation.MapperScan:

@SpringBootApplication @MapperScan(basePackages = {"com.xkcoding.orm.mybatis.MapperAndPage.mapper"}) public class SpringBootDemoOrmMybatisMapperPageApplication { public static void main(String[] args) { SpringApplication.run(SpringBootDemoOrmMybatisMapperPageApplication.class, args); } }

定义实体类和Mapper接口

创建实体类User,对应数据库中的用户表:

public class User { private Long id; private String name; private Integer age; // 省略getter和setter方法 }

创建UserMapper接口,继承Mapper接口,即可获得通用的CRUD方法:

public interface UserMapper extends Mapper<User> { // 可以添加自定义查询方法 }

PageHelper分页实现

使用PageHelper进行分页查询非常简单,只需在执行查询前调用PageHelper.startPage方法:

// 分页查询示例 public PageInfo<User> getUserList(int currentPage, int pageSize) { // 设置分页参数 PageHelper.startPage(currentPage, pageSize); // 执行查询 List<User> userList = userMapper.selectAll(); // 封装分页结果 return new PageInfo<>(userList); }

还可以指定排序字段:

PageHelper.startPage(currentPage, pageSize, "age DESC"); List<User> userList = userMapper.selectAll();

测试分页功能

在测试类中编写测试方法,验证分页功能是否正常:

@Test public void testPageHelper() { int currentPage = 1; int pageSize = 3; PageHelper.startPage(currentPage, pageSize); List<User> userList = userMapper.selectAll(); PageInfo<User> pageInfo = new PageInfo<>(userList); System.out.println("总记录数:" + pageInfo.getTotal()); System.out.println("总页数:" + pageInfo.getPages()); System.out.println("当前页数据:" + userList.size()); }

实际应用场景

在实际项目中,分页查询通常与前端表格组件配合使用。前端通过传递页码和每页条数,后端返回分页数据,包括当前页数据、总记录数、总页数等信息,以便前端渲染分页控件。

常见问题解决

  1. 分页失效问题:确保PageHelper.startPage方法在查询方法之前调用,且中间没有执行其他SQL操作。

  2. 排序字段错误:排序字段应与数据库表中的字段名保持一致,而非实体类的属性名。

  3. 通用Mapper方法不生效:检查Mapper接口是否正确继承了tk.mybatis.mapper.common.Mapper接口。

通过以上步骤,你已经掌握了在Spring Boot项目中使用通用Mapper和PageHelper实现分页查询的方法。这两个插件的结合使用,不仅简化了代码,还提高了开发效率,是MyBatis开发中的实用技巧。

如果你想深入学习更多Spring Boot相关技术,可以参考项目中的其他模块,如demo-orm-mybatis、demo-orm-mybatis-plus等,获取更多实战经验。

【免费下载链接】spring-boot-demo🚀一个用来深入学习并实战 Spring Boot 的项目。项目地址: https://gitcode.com/gh_mirrors/sp/spring-boot-demo

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 3:32:41

医疗影像设备中的高精度ADC与信号处理技术

1. 医疗影像设备的数据转换与信号处理架构解析医疗影像设备的核心在于如何精确采集微弱的生物信号并将其转换为高质量的数字图像。以CT和MRI为代表的现代医疗影像系统&#xff0c;其信号链通常包含三个关键环节&#xff1a;前端传感器信号采集、中端数据转换与处理、后端图像重…

作者头像 李华
网站建设 2026/4/27 3:27:20

掌握Noto Emoji:构建跨平台表情符号的终极视觉工具箱

掌握Noto Emoji&#xff1a;构建跨平台表情符号的终极视觉工具箱 【免费下载链接】noto-emoji Noto Emoji fonts 项目地址: https://gitcode.com/gh_mirrors/no/noto-emoji 当你发送一个笑脸表情时&#xff0c;是否曾想过它如何在iPhone、Android和Windows电脑上保持完全…

作者头像 李华
网站建设 2026/4/27 3:23:22

超强Python指南python-guide:Web自动化与浏览器控制终极教程

超强Python指南python-guide&#xff1a;Web自动化与浏览器控制终极教程 【免费下载链接】python-guide Python best practices guidebook, written for humans. 项目地址: https://gitcode.com/gh_mirrors/py/python-guide GitHub 加速计划的 py/python-guide 是一份面…

作者头像 李华
网站建设 2026/4/27 3:23:22

英特尔模块化PC设计解析与维修经济性探讨

1. Intel模块化PC设计提案解析英特尔近期发布了一份关于模块化PC设计的白皮书&#xff0c;提出了一种全新的可维修笔记本电脑和迷你PC架构方案。这个提案的核心目标是通过模块化设计提升设备的可维修性&#xff0c;同时减少电子垃圾的产生。作为一名长期关注PC硬件发展的技术从…

作者头像 李华
网站建设 2026/4/27 3:20:20

如何使用HTTPie CLI高效测试GraphQL API:开发者必备的终极指南

如何使用HTTPie CLI高效测试GraphQL API&#xff1a;开发者必备的终极指南 【免费下载链接】cli &#x1f967; HTTPie CLI — modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. 项目地址:…

作者头像 李华