千家信息网

mybatis分页插件MicroPageInterceptor

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,mybatis分页插件MicroPageInterceptor源码地址:https://github.com/jeffreyning/mybatis-plusMicroPageInterceptor特
千家信息网最后更新 2025年02月04日mybatis分页插件MicroPageInterceptor

mybatis分页插件MicroPageInterceptor

源码地址:
https://github.com/jeffreyning/mybatis-plus

MicroPageInterceptor特点
1, 支持mysql和oracle分页
2, 不必在xml编写统计count的sql
3, 使用RowBounds子类PageInfo作为分页信息和记录总数的载体,不必像其他分页插件那样要求输入输出参数必须继承特殊父类。
4, 可在PageInfo中填写自定义排序sql串,提高查询性能和排序灵活性

spring中配置mybatis分页插件MicroPageInterceptor
建议在sqlSessionFactory中配置,可以根据sqlSessionFactory是oracle还是mysql配置插件的dialect属性

                                                                                                                                    

Dao接口设置
接口中添加PageInfo参数,表示需要分页处理

//分页查询,传入PageInfo参数public List queryInfoByCondition(Map paramMap,PageInfo pageInfo);//不分页,则不用传PageInfo参数public List queryInfoByCondition(Map paramMap);

PageInfo结构
PageInfo继承RowBounds可以透传到Mybatis内部,不影响正常的参数。
pageNo,页数从1开始
pageRows,每页条数
orderStr,自定义排序sql(非必填)
total,返回总记录数(返回值)

public class PageInfo extends RowBounds {    public PageInfo(int pageNo,int pageRows) {        super(pageNo, pageRows);    }    public PageInfo(int offset,int limit, String orderStr) {        super(offset, limit);        this.orderStr=orderStr;    }    private Longtotal = 0l;    public Long getTotal() {        returntotal;    }    public void setTotal(Long total) {        this.total = total;    }    private StringorderStr = "";    public String getOrderStr() {        returnorderStr;    }    public void setOrderStr(String orderStr) {        this.orderStr = orderStr;    }}

分页或不分页sql在xml中是一样的不需要修改;sql不需要针对pageinfo做额外处理,比如手工添加limit或rownum;不需要分页的则不传PageInfo参数;不需要额外填写count统计sql;

        select * from  micro_test5 where condition=#{param}    

Java调用Dao
PageInfo创建实例时需填写pageNo(页数从1开始)和pageRows(每页条数)
如果xml中sql没有orderby语句可以,在pageInfo中设置pageInfo.setOrderStr()

//创建分页信息对象PageInfo pageInfo=new PageInfo(1,10);//第1页,每页10条//可以设置order串(非必须)pageInfo.setOrderStr("id desc");//调用dao并传入pageInfoList list=testRep.queryInfoById(paramMap,pageInfo);System.out.println(list);//使用pageInfo.getTotal()获取总记录数System.out.println(pageInfo.getTotal());

注意:
1,自定义排序
如果xml中sql没有写死排序sql,则pageInfo可以设置排序字符串。好处是查询记录个数时不必排序,查询记录时自动拼上排序sql,提高查询性能。也可以不修改xml中sql支持灵活排序。
2,总记录数处理
不必编写额外的查询count的sql;记录数会在插件中设置到pageInfo对象的total字段中带回。

排序 参数 查询 插件 处理 配置 信息 对象 性能 接口 页数 中设 支持 统计 特殊 不用 个数 可在 地址 好处 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 戴尔服务器不开机报1.5v的错 安徽通信软件开发设施服务标准 计算机软件开发一般是谁 黄浦区常用网络技术信息推荐 计算机网络技术的坑 网络技术的对等实体啥意思 电子阅读器用于软件开发查资料 自学安卓软件开发工程师 学过一些软件开发英文 网络安全资格证书在哪考 网络安全监测工具 4s店后台数据库 腾讯云香港轻量服务器 架设代理 嵌入式软件开发工程师35岁 网络安全基础教材电子书 什么笔记本软件开发 北仑应用软件开发工具 云服务器开发需要哪些技能 软件开发批量点赞 阿里云应用服务器连不上数据库 国家网络安全工作站 壮大运互联网科技有限公司 软件开发师和测试师 表格连接orcal数据库 现代通信与网络技术应用 腾讯云香港轻量服务器 架设代理 嵌入式软件开发工程师35岁 数据库的内部架构 软件开发批量点赞 在数据库中的如下两个表
0