springboot中设置pageSize的默认值

springboot中设置pageSize的默认值

方式一、使用@PageableDefault注解

可以在形参上使用@PageableDefault注解指定默认的page和size

@GetMapping(value="/list")
public String list(@PageableDefault(page=0, size=15)Pageable pageable) {

    return "list";
}

但是这种方式比较麻烦,需要在很多controller上都加上@PageableDefault(page=0, size=15)

方式二、统一处理

通过WebMvcConfigurerAdapte设置默认的size

1.appliation.properties配置文件中加入以下配置
# 设置pageable中的pagesize的默认值
pageable.page.size=15
2.在WebMvcConfigurerAdapter类中重写addArgumentResolvers()方法
package com.blog.personalblog.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.web.PageableHandlerMethodArgumentResolver;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import java.util.List;

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    @Value("${pageable.page.size}")
    private Integer pageSize;
    /**
     * 设置分页时默认的每一页数据量
     * @param argumentResolvers
     */
    @Override
    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
        PageableHandlerMethodArgumentResolver resolver = 
          					new PageableHandlerMethodArgumentResolver();
        resolver.setFallbackPageable(new PageRequest(0, pageSize));
        argumentResolvers.add(resolver);
        super.addArgumentResolvers(argumentResolvers);
    }
}

这样,pageSize的值默认就是15了

3.对应的分页页面
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:th="http://www.thymeleaf.org">
<body>
    <div  th:fragment='paginationbar'>
        <ul class="pagination pagination-lg" th:if="${page.totalPages>1}">
            <li class="page-item">
                <a class="page-link" th:href="@{${url}(page = 0)}" data-target="#loading" data-toggle="modal">
                                 首页
                </a>
            </li>
            <li th:if="${not page.first}" class="page-item">
                <a class="page-link" th:href="@{${url}(page = ${page.number - 1})}" data-target="#loading" data-toggle="modal">
                                                    上一页
                </a>
            </li>
            <li th:if="${page.first}" class="page-item disabled">
                <a class="page-link " th:href="@{${url}(page= 0)}" data-target="#loading" data-toggle="modal">上一页</a>
            </li>
            <li class="page-item">
                <a class="page-link" th:text="${page.number} + 1 + ' / ' + ${page.totalPages} + ''">
                1/3页</a>
            </li>
            <li th:if="${page.last}" class="page-item disabled">
                <a class="page-link" th:href="@{${url}(page=(${page.totalPages}-1))}" data-target="#loading" data-toggle="modal">下一页</a>
            </li>
             <li th:if="${not page.last}" class="page-item">
                <a class="page-link" th:href="@{${url}(page = ${page.number + 1})}" data-target="#loading" data-toggle="modal">下一页</a>
            </li>
            <li class="page-item">
                <a class="page-link" th:href="@{${url}(page=(${page.totalPages}-1))}" data-target="#loading" data-toggle="modal">末页</a>
            </li>
       </ul>
    </div>
</body>
</html>

参考的文章:https://blog.csdn.net/u010634897/article/details/81612124

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Spring Boot使用PageHelper非常简单。只需按照以下步骤操作: 1. 添加依赖项:在pom.xml文件添加以下依赖项: ``` <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.13</version> </dependency> ``` 2. 配置PageHelper:在application.properties文件添加以下配置: ``` # 分页插件配置 pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql ``` 3. 在Mapper使用PageHelper:在Mapper接口添加@Mapper注解,并在方法使用PageHelper.startPage()方法来启用分页功能。例如: ``` @Mapper public interface UserMapper { List<User> findAll(); @Select("SELECT * FROM user WHERE name = #{name}") List<User> findByName(@Param("name") String name); @Select("SELECT * FROM user") void findByPage(); @Select("SELECT * FROM user") void findByPage2(Page page); } ``` 在上面的示例,findByPage()和findByPage2()方法都使用了PageHelper.startPage()方法来启用分页功能。findByPage()方法使用默认的分页参数,而findByPage2()方法使用自定义的分页参数。 4. 在Service使用Mapper:在Service注入Mapper,并在方法调用Mapper的方法来获取分页数据。例如: ``` @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public PageInfo<User> findAll(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); List<User> userList = userMapper.findAll(); return new PageInfo<>(userList); } @Override public PageInfo<User> findByName(String name, int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); List<User> userList = userMapper.findByName(name); return new PageInfo<>(userList); } @Override public PageInfo<User> findByPage(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); userMapper.findByPage(); return new PageInfo<>(userMapper.findByPage()); } @Override public PageInfo<User> findByPage2(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); userMapper.findByPage2(new Page(pageNum, pageSize)); return new PageInfo<>(userMapper.findByPage2(new Page(pageNum, pageSize))); } } ``` 在上面的示例,findAll()和findByName()方法使用Mapper的方法来获取分页数据,并将结果封装为PageInfo对象返回。findByPage()和findByPage2()方法分别使用Mapper的findByPage()和findByPage2()方法来获取分页数据,并将结果封装为PageInfo对象返回。 总之,使用PageHelper来实现分页功能非常简单,只需按照上述步骤操作即可。 ### 回答2: SpringBoot是一个非常流行的Java开发框架,在使用SpringBoot开发Web应用程序时,程序员们经常要与关系型数据库打交道。在处理大量数据时,分页展示数据是非常必要的,PageHelper是一个非常优秀的分页插件,它可以很好的与SpringBoot集成,帮助开发人员实现数据分页展示。 PageHelper是Mybatis的分页插件,它采用拦截SQL语句的方式,来实现数据分页。在SpringBoot使用PageHelper,首先需要在pom.xml文件引入PageHelper的依赖: ```xml <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency> ``` 引入依赖后,需要在application.yml或application.properties文件配置PageHelper的相关参数,例如: ```yml pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true params: count=countSql autoRuntimeDialect: true closeConn: true ``` 然后,在DAO层,引入PageHelper插件: ```java import com.github.pagehelper.PageHelper; import org.springframework.stereotype.Repository; @Repository public interface UserDao { /** * 获取用户列表 * * @param pageNum 页码 * @param pageSize 每页大小 * @return 用户列表 */ List<User> getUsers(int pageNum, int pageSize); } ``` 在Service层,调用DAO的方法,并传入分页参数: ```java import com.github.pagehelper.PageHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserServiceImpl implements UserService { private final UserDao userDao; @Autowired public UserServiceImpl(UserDao userDao) { this.userDao = userDao; } @Override public List<User> getUsers(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); return userDao.getUsers(pageNum, pageSize); } } ``` 最后,在Controller层,接收前端传来的分页参数,调用Service层的方法,并将结果返回给前端: ```java import com.example.demo.entity.User; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController public class UserController { private final UserService userService; @Autowired public UserController(UserService userService) { this.userService = userService; } @GetMapping("/user") public List<User> getUsers(@RequestParam("pageNum") int pageNum, @RequestParam("pageSize") int pageSize) { return userService.getUsers(pageNum, pageSize); } } ``` 以上就是使用SpringBoot使用PageHelper的简单示例,大家可以在自己的开发根据实际情况使用。PageHelper是一个非常强大、易用的分页插件,在大部分Java开发都非常使用广泛。 ### 回答3: Spring Boot是基于Spring框架的一种快速开发框架,并且具有很好的适应性和灵活性。在Spring Boot,我们需要使用PageHelper插件来分页查询。 PageHelper是一个开源的MyBatis分页插件,可以帮助我们实现MyBatis分页功能。在Spring Boot使用PageHelper分页插件,需要进行以下操作: 1. 在pom.xml文件添加PageHelper依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.13</version> </dependency> 2. 在配置文件添加PageHelper配置 在application.yml或者application.properties添加以下配置即可: pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true params: count=countSql 具体配置项可以参考PageHelper官方文档。 3. 在mapper.xml配置分页查询 在mapper.xml使用PageHelper提供的startPage方法来进行数据分页查询: <select id="getList" resultMap="resultMap"> select * from user <where> <if test="name!=null and name!=''"> and name like concat(concat('%', #{name}), '%') </if> </where> order by id desc //分页查询 limit #{pageNo}, #{pageSize} </select> 这里使用了PageHelper默认的分页方式,传入页码和每页大小两个参数即可。如果需要使用其他方式进行分页,可以参考PageHelper官方文档进行配置。 4. 在Service调用mapper方法 最后,在Service调用mapper的getList方法即可实现分页查询: public PageInfo<User> getList(String name, int pageNo, int pageSize) { PageInfo<User> pageInfo = PageHelper.startPage(pageNo, pageSize) .doSelectPageInfo(() -> this.userMapper.getList(name)); return pageInfo; } 这里使用了PageHelper提供的startPage方法来启动分页功能,并且使用doSelectPageInfo方法将查询结果封装成PageInfo对象返回。通过这种方式,就可以很方便地在Spring Boot实现分页查询。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值