超简单的mybatis实现分页

本文介绍了如何在Spring Boot项目中使用PageHelper插件实现分页查询,包括pom.xml配置、创建分页实体类、TableResult工具类、Service实现分页逻辑以及前端Bootstrap分页组件的使用,并提供了前端请求分页数据的示例代码。
摘要由CSDN通过智能技术生成

1、pom.xml引用插件

<!--分页启动器-->
<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper-spring-boot-starter</artifactId>
	<version>1.3.0</version>
</dependency>

2、创建分页用的实体类

@Data
public class BaseDTO {
    //目前第几页
    @TableField(exist = false, select = false)
    private Integer pageNow;
    //每页几条
    @TableField(exist = false, select = false)
    private Integer pageSize;
    public Integer getStart(){
        if(pageNow == null || pageSize == null ){
            return null;
        }
        return (pageNow - 1) * pageSize;
    }
}

并且让需要分页的实体继承该类
在这里插入图片描述

3、创建TableResult工具类

@Data
@Accessors(chain = true)//开启链式编程
public class TableResult<T> {
    //查询出的记录
    private List<T> rows;
    //总条数
    private long totalCount;
    //总页数
    private long pageCount;
    public void setPageCount(Integer pageSize){
        if(pageSize == null){
            return;
        }
        if(totalCount % pageSize == 0){
            this.pageCount = totalCount / pageSize ;
        }else{
            this.pageCount = totalCount / pageSize + 1 ;
        }
    }
}

4、直接在ServiceImpl中实现分页

@Override
public Result getAdminList(Integer page) {
    PageHelper.startPage(page,5);//page是第几页,由前端传输
    List<User> adminList = userMapper.getAdminList();
    TableResult<User> table = new TableResult<>();
    Integer integer = userMapper.adminNum();//获取总数
   table.setRows(adminList).setTotalCount(integer).setPageCount(5);
    return Result.ok("").put("adminList",adminList).put("table",table);
}

5、在前端中的引用

使用的是bootstrap的分页组件

<nav aria-label="Page navigation" style="text-align: center;">
    <ul class="pagination" >
        <li>
            <a href="javascript:;" @click="btnChange(1)" title="首页" aria-label="Previous">
                <span aria-hidden="true" >&laquo;</span>
            </a>
        </li>
        <li v-for="(item,i) of table.pageCount"><a href="javascript:;" @click="btnChange(item)">{{item}}</a></li>
        <li>
            <a href="javascript:;" @click="btnChange(table.pageCount)" title="末页" aria-label="Next">
                <span aria-hidden="true">&raquo;</span>
            </a>
        </li>
    </ul>
</nav>

组件如下图所示
在这里插入图片描述
前端传输操作如下代码

btnChange:function (i){
    $.ajax({
        type: "POST",
        data:{'page':i},
        url: "http://localhost:8001/admin/getAdminList",
        success: function (r) {
            vm.adminList = r.adminList
            vm.table = r.table
        }
    })
}

6、结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值