在 Java 中,API 接口分页通常有两种常见做法:
下面以 Spring Boot + MyBatis / JPA 为例说明常见分页方式。
请求参数一般包括:
pageNum=1 // 第几页(从1开始)
pageSize=10 // 每页条数
示例 URL:
GET /api/users?pageNum=1&pageSize=10
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.7</version>
</dependency>
@GetMapping("/users")
public PageInfo<User> listUsers(
@RequestParam int pageNum,
@RequestParam int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<User> users = userMapper.selectAll();
return new PageInfo<>(users);
}
{
"list": [...],
"pageNum": 1,
"pageSize": 10,
"total": 100,
"pages": 10
}
@Entity
public class User {
@Id
private Long id;
private String name;
}
public interface UserRepository extends JpaRepository<User, Long> {
}
@GetMapping("/users")
public Page<User> listUsers(
@RequestParam int page,
@RequestParam int size) {
Pageable pageable = PageRequest.of(page - 1, size);
return userRepository.findAll(pageable);
}
{
"content": [...],
"totalElements": 100,
"totalPages": 10,
"number": 0,
"size": 10
}
SELECT * FROM user
LIMIT #{offset}, #{pageSize}
int offset = (pageNum - 1) * pageSize;
{
"code": 200,
"data": {
"list": [],
"pageNum": 1,
"pageSize": 10,
"total": 100
}
}
✅ 后端分页(性能最好)
✅ 使用 LIMIT/OFFSET 或数据库分页
✅ 返回总条数 total
❌ 不建议一次性返回上万条数据
如果你用的是 Spring Boot / MyBatis-Plus / JPA / MongoDB,可以告诉我,我可以给你对应完整示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。