SpringBoot2.0整合分页插件pageHelper

it2025-10-25  9

前言

pageHelper PageHelper 是一款好用的开源免费的 Mybatis 第三方物理分页插件 物理分页 支持常见的 12 种数据库。Oracle,MySql,MariaDB,SQLite,DB2,PostgreSQL,SqlServer 等 支持多种分页方式 支持常见的 RowBounds(PageRowBounds),PageHelper.startPage 方法调用,Mapper 接口参数调用

一、创建文件名称及位置

二、文件内容 1.AppMyBatis

package com.zhongguancun; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @MapperScan("com.zhongguancun.mapper") @SpringBootApplication public class AppMyBatis { public static void main(String[] args) { SpringApplication.run(AppMyBatis.class, args); } }

2.IndexController

package com.zhongguancun.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.github.pagehelper.PageInfo; import com.zhongguancun.entity.User; import com.zhongguancun.service.UserService; @RestController public class IndexController { @Autowired private UserService userService; @RequestMapping("/index") public PageInfo<User> index(int page, int pageSize) { return userService.findUserList(page, pageSize); } }

3.User

package com.zhongguancun.entity; import lombok.Data; @Data public class User { private Integer id; private String name; private Integer age; }

4.UserMapper

package com.zhongguancun.mapper; import java.util.List; import org.apache.ibatis.annotations.Select; import com.zhongguancun.entity.User; public interface UserMapper { @Select("SELECT * FROM users ") List<User> findUserList(); }

5.UserService

package com.zhongguancun.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.zhongguancun.entity.User; import com.zhongguancun.mapper.UserMapper; /** * page 当前页数 * pageSize 当前展示多少个 * springboot 整合pageHelper * @author 86187 * */ @Service public class UserService { @Autowired private UserMapper userMapper; public PageInfo<User> findUserList(int page, int pageSize) { // mysql 查询limit oracle 伪列 sqlserver top // pageHelper 帮我们生成分页语句 PageHelper.startPage(page, pageSize);// 底层实现原理采用改写语句 List<User> listUser = userMapper.findUserList(); // 返回给客户端展示 PageInfo<User> pageInfoUserList = new PageInfo<User>(listUser); return pageInfoUserList; } }

6.application.properties

spring.datasource.url=jdbc:mysql://192.168.200.222:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver logging.level.com.example.demo.dao=DEBUG pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql pagehelper.page-size-zero=true

7.pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zhongguancun</groupId> <artifactId>zhongguancun_springboot_mybatis_pageHelper</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- 测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!-- mysql 依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- springboot-web组件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- springboot 整合 pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> </dependencies> </project>

三、效果演示 运行项目 数据库里随便插几条数据 访问并传入参数 http://localhost:8080/index?page=1&pageSize=1 测试成功!

总结

分页功能可以优化查询哦!

最新回复(0)