Spring Boot从入门到进阶教程系列 -- MyBatis分页拦截器实现(包含数据库方言)

本教程详细介绍了如何在Spring Boot中使用MyBatis实现分页拦截器,包括编写分页对象接口、实现类,利用MyBatis的拦截器机制,以及数据库方言的支持。通过在DruidConfiguration中配置MyBatis plugins,可以扩展更多的自定义拦截器,如性能监控和异常捕获等。
摘要由CSDN通过智能技术生成
上一个教程我们讲解如何配置MyBatis实例化,数据库类型选择器,数据库方言实现,本次我们将接着上个教程的成果来整合MyBatis常用的分页拦截器实现,如需看上篇教程的同学可点击链接

【Spring Boot从入门到进阶教程系列 -- MyBatis配置,数据库选择器和分页方言实现】 

下面我们直接开启代码之旅

步骤1. 编写我们的分页对象接口

public interface Pagination<T> extends Serializable {

    public boolean isSpilled();

    public void setSpilled(boolean spilled);

    public Integer getPageNo();

    public void setPageNo(Integer pageNo);

    public Integer getPageSize();

    public void setPageSize(Integer pageSize);

    public Integer getPageTotal();

    public void setPageTotal(Integer pageTotal);

    public Integer getPageNumber();

    public void setPageNumber(Integer pageNumber);

    public List<T> getData();

    public void setData(List<T> data);

}


步骤2. 编写分页对象接口实现类

public class SimplePagination<T> implements Pagination<T> {

    private boolean spilled = true; // 是否重置溢出的PageNo
    private Integer pageNo;
    private Integer pageSize;
    private Integer pageTotal;
    private Integer pageNumber;

    private List<T> data;

    public SimplePagination() {

    }

    public SimplePagination(Integer pageNo, Integer pageSize, boolean spilled) {
        this(pageNo, pageSize, 0, null, null);
        this.spilled = spilled;
    }

    public SimplePagination(Integer pageNo, Integer pageSize) {
        this(pageNo, pageSize, 0, null, null);
    }

    public SimplePagination(Integer pageNo, Integer pageSize, Integer pageTotal) {
        this(pageNo, pageSize, pageTotal, (pageTotal % pageSize == 0) ? (pageTotal / pageSize) : (pageTotal / pageSize + 1), null);
    }

    public SimplePagination(Integer pageNo, Integer pageSize, Integer pageTotal, List<T> data) {
        this(pageNo, pageSize, pageTotal, (pageTotal % pageSize == 0) ? (pageTotal / pageSize) : (pageTotal / pageSize + 1), data);
    }

    public SimplePagination(Integer pageNo, Integer pageSize, Integer pageTotal, Integer pageNumber, List<T> data) {
        this.pageNo = pageNo;
        this.pageSize = pageSize;
        this.pageTotal = pageTotal;
        this.pageNumber = pageNumber;
        this.data = data;
    }

    public boolean isSpilled() {
        return spilled;
    }

    public void setSpilled(boolean spilled) {
        this.spilled = spilled;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值