SpringBoot 分页

SpringBoot 分页

SpringBoot 使用 PageHelper 进行分页
在pom.xml中添加pagehelper-spring-boot的依赖包
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.13</version>
</dependency>
配置application.properties
# 分页配置
# 指定数据库,不指定的话会默认自动检测数据库类型
pagehelper.helperDialect=mysql
# 是否启用分页合理化。
# 如果启用,当pagenum<1时,会自动查询第一页的数据,当pagenum>pages时,自动查询最后一页数据;
# 不启用的,以上两种情况都会返回空数据
pagehelper.reasonable=true
# 默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。
pagehelper.supportMethodsArguments=true
# 用于从对象中根据属性名取值,
# 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值,
# 默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero
#pagehelper.params=count=countSql
分页代码
public PageInfo<Entity> getPageInfoList(int page, int size) {
    //启动分页
    PageHelper.startPage(page, size);
    //使用mybatis的Mapper进行数据查询得到列表,并指定导航导航页码数,来创建PageInfo对象(这里的Entity代指需要查询的实体对象)
    PageInfo<Entity> pageInfo = new PageInfo<>(entityMapper.getAllEntity(), 5);
    return pageInfo;
}
controller层的代码
//没有输入页码的情况
@GetMapping(value = {"/{page:[0-9]*}","/"})
public String index(@PathVariable(required = false) Integer page, Model model) {
    page = null == page ? 1 : page;
    //通过service得到pageInfo
    PageInfo<QuestionDTO> pageInfo = questionService.getquestionDTOPageInfo(page, size);
    //传入model中供前台使用
    model.addAttribute("pageInfo", pageInfo);
    return "index";
}
SpringBoot中使用分页功能可以借助MyBatis-Plus、Spring Data JPA等框架来实现。以下是使用MyBatis-Plus实现分页的示例: 1. 引入MyBatis-Plus依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> ``` 2. 创建实体类和对应的Mapper接口: ```java public class User { private Long id; private String name; private Integer age; // getter和setter省略 } public interface UserMapper extends BaseMapper<User> {} ``` 3. 在Mapper接口中定义方法: ```java public interface UserMapper extends BaseMapper<User> { IPage<User> selectUserPage(Page<User> page, @Param("name") String name); } ``` 4. 在对应的XML文件中实现方法: ```xml <select id="selectUserPage" resultType="com.example.demo.entity.User"> select id, name, age from user <where> <if test="name != null"> and name like concat('%', #{name}, '%') </if> </where> </select> ``` 5. 在Service层中调用Mapper接口方法: ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public IPage<User> selectUserPage(Page<User> page, String name) { return userMapper.selectUserPage(page, name); } } ``` 6. 在Controller层中调用Service层方法: ```java @RestController public class UserController { @Autowired private UserService userService; @GetMapping("/users") public IPage<User> selectUserPage(Page<User> page, String name) { return userService.selectUserPage(page, name); } } ``` 这样就完成了使用MyBatis-Plus实现SpringBoot分页的示例。其中,`Page<User>`是MyBatis-Plus提供的分页查询参数封装类,`IPage<User>`是MyBatis-Plus提供的分页查询结果封装类。在Controller层中,通过接收`Page<User>`参数来传递分页查询的相关参数,同时也可以传递其他的查询参数,比如上述示例中的`name`参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值