SpringBoot分页插件PageHelper和lombook使用

本文介绍PageHelper插件简化Mybatis分页查询,及Lombok注解减少Java代码冗余,提升SpringBoot项目开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    一.pageHelper

     对于使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,sqlserver数据库因为分组的原因还不得不嵌套重复的数据,如此重复下去会导致sql语句日益庞大。

     pageHepler,springboot支持的一种分页体系,只需要导入相应的pom依赖,我们就可以在代码中非常轻松地使用它。

    导入依赖,注意版本和内置关系

<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.apache.tomcat</groupId>
					<artifactId>tomcat-jdbc</artifactId>
				</exclusion>
			</exclusions>
			<version>1.2.3</version>
		</dependency>

    如何使用呢------------------------->外部传入页码和显示条数,调用内部的一个方法即可完成分页

 @Override
    public List<PieImage> quertPagePieImage(int pageNum, int pageSize) {
        log.info("分页查询扇形图数据,传入页码{},传入页码数据显示{}条",pageNum,pageSize);
        PageHelper.startPage(pageNum,pageSize);
        List<PieImage> list = pieImageMapper.queryPieImageList();
        return list;
    }

通过调用PageHelper.startPage(pageNum,pageSize)方法,传入页码和条数,该插件会自动将数据进行整合,如果你想完成更加复杂的分页,可以参考其他的方法

这款插件内置了多款不同场景的方法便于使用,根据需求调用即可。

最终展示和查询出的数据如下:

如上图所示,数据库共存储了十条数据,分别调用分页插件显示前五条数据和最后第三页的四条数据,最终都成功显示,代表此处的分页插件已经起作用。同时,在项目中使用时,只需调用此方法,可以在数据库查询中更加关注于数据和业务本身,大大减少冗余代码。但是,此款插件不能满足所有需求,需根据实际情况进行调用。

二.lombok

   lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法

   导入依赖

<!-- lombok -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.16.20</version>
			<scope>provided</scope>
		</dependency>

很多人都说直接下载一个插件lombok不行吗?我觉得可以,但是下载插件后载重启,印入我眼帘的是这样的

如果只是导入插件而不导包的话,我本地是启动不起来的。

大家也可以通过上图的右边区域观察到,lombok工具可以一键生成大量的基础代码,而@Data这个注解,则涵盖了绝大多数的可能性,通常,一个注解即可以解决基本问题。

@Data的源码告诉我们,它集成了包括getset在内的基础方法的整合,所以我们可以使用它一键生成其他代码。

package com.lxt.model;

import lombok.Data;

@Data
public class PieImage {

    private String name;

    private String value;

}

类似于这种,简单明了,也没有什么冗余代码扰乱我们的视线。

其实,不只是springboot,spring大家族还有很多新东西等待我们去发现。加油。

### 关于Spring Boot中使用PageHelper分页插件 #### 配置过程概述 在Spring Boot项目中集成PageHelper分页插件可以通过几个关键步骤完成。这些步骤涵盖了依赖引入、配置文件设置以及控制器中的实际应用。 #### 添加Maven依赖 为了使PageHelper能够在Spring Boot项目中正常工作,首先需要在`pom.xml`文件中添加相应的依赖项[^1]: ```xml <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.10</version> </dependency> ``` #### 配置application.properties 接着,在项目的`application.properties`或`application.yml`文件中进行必要的配置。以下是基于MySQL数据库的一个典型配置示例][^[^24]: ```properties # PageHelper分页插件配置 pagehelper.helper-dialect=mysql pagehelper.support-methods-arguments=true pagehelper.params=count=countSql pagehelper.reasonable=true ``` 上述配置解释如下: - `pagehelper.helper-dialect`: 设置使用的数据库方言,这里指定为MySQL。 - `pagehelper.support-methods-arguments`: 支持方法参数作为分页参数,默认值为false。 - `pagehelper.params`: 自定义SQL参数,通常用于统计查询总数的自定义语句。 - `pagehelper.reasonable`: 是否合理化分页参数,当分页参数不合理时自动调整到最接近的边界值。 #### Controller层实现分页逻辑 在Controller类中可以调用PageHelper来实现分页功能。下面是一个简单的例子,演示如何获取第一页的数据并每页显示10条记录: ```java import com.github.pagehelper.PageHelper; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @GetMapping("/users") public List<User> getUsers(@RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize) { // 开始分页 PageHelper.startPage(pageNum, pageSize); // 这里假设有一个UserMapper接口负责数据访问 return userMapper.selectAllUsers(); } } ``` 在这个例子中,`PageHelper.startPage()` 方法会在执行后续的 SQL 查询之前启动分页机制,并返回当前页面的结果集。 #### 数据库交互前端展示 如果希望进一步增强用户体验,还可以结合Thymeleaf或其他模板引擎渲染分页结果[^3]。例如,利用Bootstrap框架构建响应式的表格结构,配合JavaScript动态加载更多内容或者切换不同页面。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值