网站首页 > 教程文章 正文
java
在使用 Spring Data JPA 和 MyBatis-Plus 时,它们都有自己的 Page 类。这两者的 Page 类有不同的用法和功能,因此你需要根据使用的框架来选择正确的类。
1.Spring Data JPA 的 Page 类
Spring Data JPA 提供的 Page 类用于分页查询,它属于 org.springframework.data.domain.Page。该类包含了分页数据和分页相关的信息(如总页数、总记录数等)。通常,在 Spring Data JPA 中,我们会用它来处理查询结果的分页。
import org.springframework.data.domain.Page;
public Page<User> findByNameContaining(String name, Pageable pageable);
复制代码
Page<T> 提供了以下常用方法:
- getContent():获取当前页的数据。
- getTotalElements():获取总记录数。
- getTotalPages():获取总页数。
- getNumber():获取当前页码(从 0 开始)。
2.MyBatis-Plus 的 Page 类
MyBatis-Plus 也有自己的 Page 类,它位于 com.baomidou.mybatisplus.extension.plugins.pagination.Page 包中。MyBatis-Plus 的 Page 类主要用于分页查询时传递分页参数,获取分页结果。
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
Page<User> page = new Page<>(1, 10); // 页码从 1 开始,每页 10 条数据
IPage<User> userPage = userMapper.selectPage(page, queryWrapper);
Page<T> 提供了以下常用方法:
- getRecords():获取当前页的数据。
- getTotal():获取总记录数。
- getPages():获取总页数。
- getCurrent():获取当前页码(从 1 开始)。
3.如何选择使用哪个 Page 类
- 如果你使用的是 Spring Data JPA,那么应该使用 org.springframework.data.domain.Page 类。
- 如果你使用的是 MyBatis-Plus,那么应该使用 com.baomidou.mybatisplus.extension.plugins.pagination.Page 类。
示例代码:
Spring Data JPA 的分页查询示例:
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public Page<User> getUsersByName(String name, int page, int size) {
// 创建 Pageable 对象
PageRequest pageable = PageRequest.of(page, size);
// 执行分页查询
return userRepository.findByNameContaining(name, pageable);
}
}
MyBatis-Plus 的分页查询示例:
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public IPage<User> getUsersByName(String name, int page, int size) {
// 创建 Page 对象
Page<User> pageable = new Page<>(page, size);
// 执行分页查询
return userMapper.selectPage(pageable, new QueryWrapper<User>().like("name", name));
}
}
总结:
- Spring Data JPA 使用的是 org.springframework.data.domain.Page。
- MyBatis-Plus 使用的是 com.baomidou.mybatisplus.extension.plugins.pagination.Page。
根据你所使用的框架来选择对应的 Page 类。
猜你喜欢
- 2024-12-07 MyBatis-Plus 不支持联表?一个依赖轻松搞定,非常牛逼!
- 2024-12-07 「Mybatis-Plus学习笔记四」——Mybatis-Plus分页查询和条件查询
- 2024-12-07 MyBatis-Plus,看这一篇就够了
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)