• MyBatis 分页插件 PageHelper 6.0.0 发布


    在这里插入图片描述

    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类中新增了用以进行数据对象转换的方法 PageInfo convert(Page.Function 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);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60

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

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

    <property name="dialectAlias" value="oracle=com.github.pagehelper.dialect.helper.OracleDialect"/>
    
    <property name="dialectAlias" value="oracle=oracle9i"/>
    
    <property name="dialectAlias" value="dm=oracle"/>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    PageHelper Spring Boot Starter 发布 2.0.0

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

    
    <dependency>
      <groupId>com.github.pagehelpergroupId>
      <artifactId>pagehelper-spring-boot-starterartifactId>
      <version>2.0.0version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    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
    
    • 1
  • 相关阅读:
    前后端分离Vue+nodejs酒店公寓客房预订管理系统udr7l-java-php-django-springboot
    一些Python高性能使用技巧,让你直接起飞
    Vue开发中常用的 js处理数组的方法
    如何恢复电脑硬盘删除数据?提供一套实用恢复方案
    JS正则表达式
    服务器git安装python包失败,如何手动下载github项目包并安装到虚拟环境中(简单易懂)
    DAY14 文件和makefile
    【HCIP】BGP实验
    [Python从零到壹] 五十一.图像增强及运算篇之图像灰度直方图对比分析万字详解
    从“三不卖”到三项增长,三翼鸟是如何持续贴近用户的?
  • 原文地址:https://blog.csdn.net/isea533/article/details/134241561