MyBatis 分页插件 PageHelper 6.0.0 发布

news2024/12/28 22:51:39

在这里插入图片描述

6.0.0 - 2023-11-05

  • 基于jdk8适配,6.0开始不支持jdk6和7,如果有需要可以使用5.x版本
  • 增加异步count支持,全局配置asyncCount,默认false,单次设置:PageHelper.startPage(1, 10).enableAsyncCount();
    异步使用独立连接(事务)查询,有增删改操作影响查询时不适合开启异步查询。closed #334
  • JSqlParser默认开启 parser.withSquareBracketQuotation(true),支持 SqlServer []
  • feat: 在PageInfo类中新增了用以进行数据对象转换的方法 <E> PageInfo<E> convert(Page.Function<T, E> function) by
    codeke
  • CountSqlParser改为接口,允许通过countSqlParser参数替换为自己的实现,支持 #772
  • dialectAlias支持简化配置,例如dm=oracle;oracle=oracle9i,直接引用现在的缩写,不用写类全名
  • countColumn添加注入检测,fixed #686
  • 增加PageParam类,不内嵌对象(会影响使用),如果想用可以继承该对象,closed #562
  • 所有异常信息改为英文提示
  • 放开 setLocalPage,支持 #771
  • 解决sqlserver带union sql解析时处理order by错误的问题,fixed #768
  • 优化total逻辑,解决指定不分页查询,同时指定order by时无效的问题,fixed #641
  • 修改 dialect 实例化逻辑,保证类完成配置后使用,fixed #742
  • dialectAliasMap改为LinkedHashMap,可以按配置顺序进行匹配,fixed #758
  • 行云数据库分页BUG修复 by maimaitiyaer_bonc

PageHelper 6 支持 jdk8+

PageHelper 5 支持 jdk6+

物理分页

该插件目前支持以下数据库的物理分页 PageAutoDialect:

static {
    //注册别名
    registerDialectAlias("hsqldb",HsqldbDialect.class);
    registerDialectAlias("h2",HsqldbDialect.class);
    registerDialectAlias("phoenix",HsqldbDialect.class);
    
    registerDialectAlias("postgresql",PostgreSqlDialect.class);
    
    registerDialectAlias("mysql",MySqlDialect.class);
    registerDialectAlias("mariadb",MySqlDialect.class);
    registerDialectAlias("sqlite",MySqlDialect.class);
    
    registerDialectAlias("herddb",HerdDBDialect.class);
    
    registerDialectAlias("oracle",OracleDialect.class);
    registerDialectAlias("oracle9i",Oracle9iDialect.class);
    registerDialectAlias("db2",Db2Dialect.class);
    registerDialectAlias("as400",AS400Dialect.class);
    registerDialectAlias("informix",InformixDialect.class);
    //解决 informix-sqli #129,仍然保留上面的
    registerDialectAlias("informix-sqli",InformixDialect.class);
    
    registerDialectAlias("sqlserver",SqlServerDialect.class);
    registerDialectAlias("sqlserver2012",SqlServer2012Dialect.class);
    
    registerDialectAlias("derby",SqlServer2012Dialect.class);
    //达梦数据库,https://github.com/mybatis-book/book/issues/43
    registerDialectAlias("dm",OracleDialect.class);
    //阿里云PPAS数据库,https://github.com/pagehelper/Mybatis-PageHelper/issues/281
    registerDialectAlias("edb",OracleDialect.class);
    //神通数据库
    registerDialectAlias("oscar",OscarDialect.class);
    registerDialectAlias("clickhouse",MySqlDialect.class);
    //瀚高数据库
    registerDialectAlias("highgo",HsqldbDialect.class);
    //虚谷数据库
    registerDialectAlias("xugu",HsqldbDialect.class);
    registerDialectAlias("impala",HsqldbDialect.class);
    registerDialectAlias("firebirdsql",FirebirdDialect.class);
    //人大金仓数据库
    registerDialectAlias("kingbase",PostgreSqlDialect.class);
    // 人大金仓新版本kingbase8
    registerDialectAlias("kingbase8",PostgreSqlDialect.class);
    //行云数据库
    registerDialectAlias("xcloud",CirroDataDialect.class);
    
    //openGauss数据库
    registerDialectAlias("opengauss",PostgreSqlDialect.class);
    
    //注册 AutoDialect
    //想要实现和以前版本相同的效果时,可以配置 autoDialectClass=old
    registerAutoDialectAlias("old",DefaultAutoDialect.class);
    registerAutoDialectAlias("hikari",HikariAutoDialect.class);
    registerAutoDialectAlias("druid",DruidAutoDialect.class);
    registerAutoDialectAlias("tomcat-jdbc",TomcatAutoDialect.class);
    registerAutoDialectAlias("dbcp",DbcpAutoDialect.class);
    registerAutoDialectAlias("c3p0",C3P0AutoDialect.class);
    //不配置时,默认使用 DataSourceNegotiationAutoDialect
    registerAutoDialectAlias("default",DataSourceNegotiationAutoDialect.class);
}

如果你使用的数据库不在这个列表时,你可以配置 dialectAlias 参数。

这个参数允许配置自定义实现的别名,可以用于根据 JDBCURL 自动获取对应实现,允许通过此种方式覆盖已有的实现,配置示例如(多个配置时使用分号隔开):

<property name="dialectAlias" value="oracle=com.github.pagehelper.dialect.helper.OracleDialect"/>
<!-- 6.0支持下面的引用方式,引用 Oracle9iDialect.class 的实现 -->
<property name="dialectAlias" value="oracle=oracle9i"/>
<!-- 6.0支持下面的引用方式,达梦使用oracle语法分页,简化类全名写法 -->
<property name="dialectAlias" value="dm=oracle"/>

PageHelper Spring Boot Starter 发布 2.0.0

在 pom.xml 中添加如下依赖:


<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper-spring-boot-starter</artifactId>
  <version>2.0.0</version>
</dependency>

v2.0.0 - 2023-11-05

  • 升级 PageHelper 到 6.0.0,支持异步 count 等功能,详细查看 6.0
  • 升级 MyBatis 到 3.5.15
  • 升级 springboot 到 2.7.17
  • 新增参数 asyncCount,增加异步count支持,默认false,单次设置:PageHelper.startPage(1, 10).enableAsyncCount();
  • 新增参数 countSqlParserCountSqlParser改为接口,允许通过countSqlParser参数替换为自己的实现

参数示例:

pagehelper.async-count=true

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1176292.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Tuxera NTFS2023永久免费版本下载

若我们想要将一款格式为NTFS的磁盘转换成FAT32格式&#xff0c;如何通过NTFS for Mac进行转换呢&#xff1f;使用过这款软件的用户都之后&#xff0c;这款产品包含一个Disk Manager组件&#xff0c;通过这个组件我们可以对磁盘进行管理操作&#xff0c;所以想要将磁盘格式进行转…

SM5102 3.7V 锂电池转干电池充放管理芯片

SM5102 3.7V 锂电池转干电池充放管理芯片 简介 &#xff1a; SM5102 是一款锂电池充放电管理专用芯片。充电工作时, 可以为 3.7V 锂电池进行充电&#xff0c;电流最高可配置1A。放电工作时&#xff0c;采用开关频率 1MHz同步降压转换器进行放电&#xff0c;放电电流可以达到3…

Flink往Starrocks写数据报错:too many filtered rows

Bug信息 Caused by: com.starrocks.data.load.stream.exception.StreamLoadFailException: {"TxnId": 2711690,"Label": "cd528707-8595-4a35-b2bc-39b21087d6ec","Status": "Fail","Message": "too many f…

iphone15 nplayer播放本地电影投屏天猫魔盒(电视)卡顿解决方案

文章目录 投屏环境现象写在前面 解决方案所需投屏app安装方法试用结果如果文章对您有用&#xff0c;欢迎收藏或关注&#xff01; iphone15 nplayer播放本地电影投屏天猫魔盒(电视)卡顿解决方案 投屏环境 全千兆wifi6局域网 1000兆电信宽带 天猫魔盒4Pro 8G&#xff08;M19&…

数据集:机器人理解世界的关键

原创 | 文 BFT机器人 传统的机器人和工业自动化解决方案已经颇有成效。在工厂中入驻自动化机器人可以快速地帮助工人们完成长时间重复劳动的任务。随着用工成本上涨、技能人才短缺、工作环境恶劣等问题的凸显&#xff0c;社会更迫切地需要采用自动化设备代替人工来完成该类操作…

红黑树——原理刨析

众所周知&#xff0c;红黑树是从AVLTree树中衍变而来的&#xff0c;所以在学红黑树之前还是要好好的理解一下AVLTree树的原理&#xff0c;为理解红黑树减轻理解负担&#xff0c;好了进入正题。 红黑树原理&#xff1a; 由名可知&#xff0c;红黑树——肯定是与颜色有关的一个树…

通讯录详解(静态版,动态版,文件版)

&#x1f493;博客主页&#xff1a;江池俊的博客⏩收录专栏&#xff1a;C语言进阶之路&#x1f449;专栏推荐&#xff1a;✅C语言初阶之路 ✅数据结构探索✅C语言刷题专栏&#x1f4bb;代码仓库&#xff1a;江池俊的代码仓库&#x1f389;欢迎大家点赞&#x1f44d;评论&#x…

第三章:boundary-value analysis

文章目录 Boundary-value Analysiscomputational faults 计算错误boundary shift 边界偏移boundary value analysis 的优势Path condition, domain, and domain boundary (路径条件、域和域边界)Open and closed boundaries (闭合边界 / 开放边界)on / off pointGuidelinestr…

浅析LiveMedia智能视频网关的AI识别技术及应用场景

一、行业背景 &#xff08;1&#xff09;AI技术在安防领域大量落地应用 随着近几年人工智能的快速发展&#xff0c;深度学习方法及性能日益提升&#xff0c;计算机视觉、图像处理、视频结构化和大数据分析等技术也不断完善&#xff0c;使得安防产品逐步走向智能化。在技术成熟…

redis五种数据类型

Redis支持五种数据类型&#xff1a;string&#xff08;字符串&#xff09;&#xff0c;hash&#xff08;哈希&#xff09;&#xff0c;list&#xff08;列表&#xff09;&#xff0c;set&#xff08;集合&#xff09;及zset(sorted set&#xff1a;有序集合)。 1.String&#…

Rust结构体和枚举类

文章目录 元组结构体结构体枚举类 Rust初步上手⚙所有权 元组结构体 元组结构体是最简单的结构体&#xff0c;可以粗暴地理解为是有名字的元组&#xff0c;二者的区别如下。 let tup: (i32, f64, u8) (500, 6.4, 1);struct Test(i32, f64, u8); let t Test(500,6.4,1)第一…

操作系统——文件在外存中的分配方式(王道视频p61 P62)

1.总体概述&#xff1a; 连续分配 —— 链接分配 —— 索引分配 &#xff08;1&#xff09;对于顺序分配&#xff0c;这种方式 基本不会使用了&#xff0c; 因为 它存在一个 核心的问题就是 没法更新&#xff1b;不过&#xff0c;还是要注意它的 “文件目录”——其中存放了…

Memcached构建缓存服务器

Memcache介绍 1、特点 内置存储方式----------为了提高性能&#xff0c;memcached中保存的数据都存储在memcache内置的内存存储空间中。由于数据仅存在于内存中&#xff0c;重启操作系统会导致全部数据消失 简单key/value存储--------------服务器不关心数据本身的意义及结构&…

NSSCTF web刷题记录4

文章目录 [NSSRound#4 SWPU]1zweb(revenge)[强网杯 2019]高明的黑客[BJDCTF 2020]Cookie is so subtle![MoeCTF 2021]fake game[第五空间 2021]PNG图片转换器[ASIS 2019]Unicorn shop[justCTF 2020]gofs[UUCTF 2022 新生赛]phonecode[b01lers 2020]Life On Mars[HZNUCTF 2023 f…

【qemu逃逸】GACTF2020-babyqemu

前言 虚拟机用户名&#xff1a;root 无密码 设备逆向 题目去掉的符号&#xff0c;经过逆向分析&#xff0c;实例结构体如下&#xff1a; 可以看到 arr_int_8 数组后面存在一个函数指针&#xff0c;不用想基本上就是劫持该函数指针了。 denc_mmio_read 函数 这里存在越界读…

.net core 到底行不行!超高稳定性和性能的客服系统:性能实测

业余时间用 .net core 写了一个升讯威在线客服系统。并在博客园写了一个系列的文章&#xff0c;介绍了这个开发过程。 我把这款业余时间写的小系统丢在网上&#xff0c;陆续有人找我要私有化版本&#xff0c;我都给了&#xff0c;毕竟软件业的初衷就是免费和分享&#xff0c;后…

最新知识付费变现小程序源码/独立后台知识付费小程序源码/修复登录接口

最新知识付费变现小程序源码&#xff0c;独立后台知识付费小程序源码&#xff0c;最新版修复登录接口。 主要功能 会员系统&#xff0c;用户登录/注册购买记录 收藏记录 基本设置 后台控制导航颜色 字体颜色 标题等设置 流量主广告开关小程序广告显示隐藏 广告主审核过审核…

VS2022创建win32汇编项目

文章目录 一、下载安装win32环境1.1、下载网址&#xff1a;https://masm32.com/1.2、解压缩安装1.3、安装路径1.4、安装masm32 SDK1.5、安装成功1.6、导入lib1.7、配置默认&#xff0c;可以根据自己需求修改1.8、启动界面二、vs2022 安装过程略过。。。2.1、创建项目2.2、填写项…

高通Android 8.1 扫码枪无法扫sn包含2或者全部是2的问题

背景&#xff1a;由于近期工厂生产&#xff0c;测试突然反馈扫码枪扫sn总是丢失2&#xff0c;比如 AXB2SHS822009997/LSXG 结果显示是 AXBSHS800997/LSX 于是我叫测试找了之前可以版本然后抓日志进行对比发现&#xff0c;确实只有2这个数字无法扫&#xff0c;如果把2这一位改成…

California Science Museum

文章目录 1. University of Southern California(USC)2. NASA航天飞机3. 返回舱4. Others彩蛋1: Paris, capital of France彩蛋2: Switzerland(瑞士)1. University of Southern California(USC) 2. NASA航天飞机