springboot 分页查询参数_spring boot 实例之 数据分页

在前面已经完成了数据库连接。https://www.jianshu.com/p/9850582904fa。实现保存、删除、查询、列表。这章在上一节的基础上增加数据分页。最终统一处理HTTP请求的分页、排序。

顺带说明下,API接口和服务名称的规则,这样看到API路径也能判断出它实现了什么功能:

名称

描述

保存

save

添加或修改资源信息,以save开头方法命名(如:savePassword),所有资源都有名为id,类型为整型的字段,如果id值为null/0会以添加进行操作,如果id值大于0,会以修改进行操作,API中有特殊说明的,以特殊说明为准

删除

delete

删除资源信息,以delete开头方法命名(如:deleteById)

查询

load

单个资源查询,以load开头方法命名(如:loadByName)

列表

list/find

列表资源查询,以list开头方法命名(如:listByMatch);对资源进行分页查询,以find开头方法命名(如:findByMatch),分页的参数系统统一处理,所有find开头的API都提供了分页和排序参数,在API中参数描述中不再说明,分页和排序的参数在本文下方说明

增加函数

在UserService 接口中增加一个函数:find。此时文件内容如下:

package com.biboheart.demo.user.service;

import java.util.List;

import org.springframework.data.domain.Page;

import com.biboheart.brick.exception.BhException;

import com.biboheart.demo.user.domain.User;

public interface UserService {

/**

* 保存用户信息

*

* @param user

* 用户信息对象

* @return 保存成功后的用户信息或null

* @throws BhException 参数异常捕获

*/

public User save(User user) throws BhException;

/**

* 删除用户

*

* @param id

* 用户ID

* @return 返回删除成功的用户信息或null

*/

public User delete(Long id);

/**

* 查询用户信息

*

* @param id

* 用户ID

* @return 用户信息或null

*/

public User load(Long id);

/**

* 用户列表

*

* @return 返回用户对象列表

*/

public List list();

public Page find();

}

Page 是spring data jpa 的分页模型。数据结果如下:

{

"content": [{}], // 数据列表

"last": true, // 是否最后一页

"totalPages": 1, // 总页数

"totalElements": 1, // 数据总数

"sort": null, // 排序

"first": true, // 是否首页

"numberOfElements": 1, // 本页数据条数

"size": 10, // 每页长度

"number": 0 // 当前页序号

}

实现分页

在UserService实现中实现find函数,这里用更新时间降序排列

@Service

public class UserServiceImpl implements UserService {

@Autowired

private UserRepository userRepository;

...

...

@Override

public Page find(Integer page, Integer size) {

if (null == page) {

page = 0;

}

if (CheckUtils.isEmpty(size)) {

size = 10;

}

PageRequest pageable = PageRequest.of(page, size, Sort.Direction.DESC, "updateTime");

Page users = userRepository.findAll(pageable);

return users;

}

}

开放接口

添加api接口

@RestController

public class UserController {

@Autowired

private UserService userService;

...

...

/**

* 用户列表(分页)

* @return

*/

@RequestMapping(value = "/userapi/user/find", method = {RequestMethod.POST, RequestMethod.GET})

public BhResponseResult> find(Integer pageOffset, Integer pageSize) {

Page users = userService.find(pageOffset, pageSize);

return new BhResponseResult<>(0, "success", users);

}

}

测试接口

在API工具(postmain)中测试下接口

测试结果

{

"code": 0,

"message": "success",

"result": {

"content": [

{

"id": 5,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值