Mybatis分页方法
2024-10-19 17:43:01
使用 Maven
在 pom.xml 中添加如下依赖:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
Example
可以这样调用,PageHelper.startPage(1,10)表示从第一页开始,每页10条记录,返回值为Page<>。
@RestController public class ProductController { @Autowired ProductMapper productMapper; @RequestMapping("getProduct") public Page<Product> getProduct(){ PageHelper.startPage(1,10); Page<Product> productList = (Page<Product>) productMapper.selectAll(); return productList; } }
这是直接通过mapper获取DO数据可以直接使用,List<>可以被直接强转为Page<>。
如果要转换为DTO或VO,需要通过下面的方式
@RequestMapping("getProduct")
public PageInfo<ProductDTO> getProduct(){
PageHelper.startPage(1,10); List<ProductDTO> productDTOS = new ArrayList<>();
List<Product> productList = productMapper.selectAll();
PageInfo<Product> pageInfo = new PageInfo<>(productList); for (Product product : productList) {
ProductDTO productDTO = new ProductDTO();
BeanUtils.copyProperties(product,productDTO);
productDTOS.add(productDTO);
} PageInfo pageResult = new PageInfo(productDTOS);
return pageResult;
}
返回值为PageInfo<>类型,因为List<DTO>为ArrayList类,不能直接转为Page<>,所以放在PageInfo<>中。
前端取list中的内容即可,其余为参数信息。
PageHelper.startPage
静态方法调用
除了 PageHelper.startPage
方法外,还提供了类似用法的 PageHelper.offsetPage
方法。
在你需要进行分页的 MyBatis 查询方法前调用 PageHelper.startPage
静态方法即可,紧跟在这个方法后的第一个MyBatis 查询方法会被进行分页。
最新文章
- LinQ 简单使用
- 2014年5月份第4周51Aspx源码发布详情
- [SqlServer]创建链接服务器
- java.lang.StringBuilder
- 【巩固】CSS3的3D动画 ——3D旋转(1)
- asp.net对cookie的操作
- 第一章:Symfony2和HTTP基本原理
- SPOJ 3267 D-query(离散化+主席树求区间内不同数的个数)
- Inno Setup命令行安装卸载参数
- Jquery 对象集合的迭代扩展forEach
- jquery以及js实现option左移右移
- CSS实现背景透明而背景上的文字图片不透明
- 验证二叉搜索树的golang实现
- vue嵌套路由--params传递参数
- robot framework测试驱动无法定位页面元素
- LintCode: Single Number II
- linux一键安装php环境
- js中声明Number的五种方式
- Linux 系统 /proc/[pid]/stat 文件解释
- Css3 实现关键帧动画