分页查询是数据库查询中常见的一种操作,紧张用于处理大量数据,避免一次性加载所有数据造成的性能问题。通过分页查询,用户可以按需加载数据,提高用户体验。
要在 Spring Boot 中整合 MyBatis 并实现数据查询分页操作,你可以遵照以下步骤。
首先,确保在pom.xml文件中添加 Spring Boot 和 MyBatis 干系的依赖

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>${mybatis.version}</version> <!-- 更换为你利用的 MyBatis 版本 --></dependency>
添加MyBatis配置
须要在application.yml配置文件中添加干系的配置。如下所示。
spring: datasource: url: jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC username: your_username password: your_password driver-class-name: com.mysql.cj.jdbc.Driver mybatis: type-aliases-package: com.example.yourapp.model # 映射文件所在的包路径 mapper-locations: classpath:mapper/.xml # Mapper XML 文件的位置 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 日志实现,这里输出到掌握台 map-underscore-to-camel-case: true # 是否开启自动驼峰命名规则映射
创建实体类
创建用于分页测试实体类工具。
public class User { private Long id; private String name; private String email; // 省略 getter 和 setter 方法}
编写Mapper接口
创建一个用于分页查询的接口工具,传入参数分别是偏移量和页大小。
// Mapper 接口@Mapperpublic interface UserMapper { List<User> findAll(); List<User> findPage(@Param("offset") int offset, @Param("pageSize") int pageSize);}
在resource目录下创建Mapper映射文件。
// Mapper XML 文件(resources/mapper/UserMapper.xml)<mapper namespace="com.example.mapper.UserMapper"> <select id="findAll" resultType="com.example.model.User"> select from user </select> <select id="findPage" resultType="com.example.model.User"> select from user limit #{offset}, #{pageSize} </select></mapper>
Service层代码实现
分别查询全量数据以及分页查询的数据
// Service 层代码@Servicepublic class UserService { @Autowired private UserMapper userMapper; public List<User> findAll() { return userMapper.findAll(); } public List<User> findPage(int pageNum, int pageSize) { int offset = (pageNum - 1) pageSize; return userMapper.findPage(offset, pageSize); }}
掌握器实现
编写User接口用来调用分页查询的操作。
@RestController@RequestMapping("/users")public class UserController { @Autowired private UserService userService; @GetMapping public List<User> getAllUsers() { return userService.findAll(); } @GetMapping("/page") public List<User> getUsersByPage(@RequestParam int pageNum, @RequestParam int pageSize) { return userService.findPage(pageNum, pageSize); }}
总结
通过上面的操作就可以完成MyBatis的分页查询操作,当然在实际利用场景中并不是直接通过这种办法来实现,在实际操作的时候须要用到分页插件PageHelper,当然无论是什么样的分页插件,都离不开上面代码中演示的事理。