1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

新闻 Mybatis 分页插件 PageHelper 5.0.4 发布 下载

本帖由 漂亮的石头2017-08-01 发布。版面名称:软件资讯

  1. 漂亮的石头

    漂亮的石头 版主 管理成员

    注册:
    2012-02-10
    帖子:
    488,014
    赞:
    47
    Mybatis分页插件 - PageHelper 5.0.4 发布了。 如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。

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


    1. Oracle


    2. Mysql


    3. MariaDB


    4. SQLite


    5. Hsqldb


    6. PostgreSQL


    7. DB2


    8. SqlServer(2005+)


    9. Informix


    10. H2


    11. SqlServer2012


    12. Derby


    13. Phoenix

    如果你使用 Maven 可以在pom.xml 中添加下面的依赖:

    <dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.0.4</version>
    </dependency>

    如果使用Spring Boot,可以直接添加下面的依赖:

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



    5.0.4


    • 增加对Phoenix数据库的简单配置支持,配置helperDialect=phoenix即可,也可以自动识别Phoenix数据库的 jdbc url。


    • count 查询的缓存msCountMapkey 改为String类型,key 为 count 查询的MappedStatement的 id。


    • 增加countSuffixcount 查询后缀配置参数,该参数是针对PageInterceptor配置的,默认值为_COUNT。


    • 增加手写 count 查询支持,详情看下面介绍。
    增加手写 count 查询支持


    增加countSuffixcount 查询后缀配置参数,该参数是针对PageInterceptor配置的,默认值为_COUNT。

    分页插件会优先通过当前查询的 msId +countSuffix查找手写的分页查询。

    如果存在就使用手写的 count 查询,如果不存在,仍然使用之前的方式自动创建 count 查询。

    例如,如果存在下面两个查询:

    <select id="selectLeftjoin" resultType="com.github.pagehelper.model.Country">
    select a.id,b.countryname,a.countrycode from country a
    left join country b on a.id = b.id
    order by a.id
    </select>
    <select id="selectLeftjoin_COUNT" resultType="Long">
    select count(distinct a.id) from country a
    left join country b on a.id = b.id
    </select>

    上面的countSuffix使用的默认值_COUNT,分页插件会自动获取到selectLeftjoin_COUNT查询,这个查询需要自己保证结果数正确。

    返回值的类型必须是resultType="Long",入参使用的和selectLeftjoin查询相同的参数,所以在 SQL 中要按照selectLeftjoin的入参来使用。

    因为selectLeftjoin_COUNT方法是自动调用的,所以不需要在接口提供相应的方法,如果需要单独调用,也可以提供。

    上面方法执行输出的部分日志如下:

    DEBUG [main] - ==> Preparing: select count(distinct a.id) from country a left join country b on a.id = b.id
    DEBUG [main] - ==> Parameters:
    TRACE [main] - <== Columns: C1
    TRACE [main] - <== Row: 183
    DEBUG [main] - <== Total: 1
    DEBUG [main] - Cache Hit Ratio [com.github.pagehelper.mapper.CountryMapper]: 0.0
    DEBUG [main] - ==> Preparing: select a.id,b.countryname,a.countrycode from country a left join country b on a.id = b.id order by a.id LIMIT 10
    DEBUG [main] - ==> Parameters:
    TRACE [main] - <== Columns: ID, COUNTRYNAME, COUNTRYCODE
    TRACE [main] - <== Row: 1, Angola, AO
    TRACE [main] - <== Row: 2, Afghanistan, AF
    TRACE [main] - <== Row: 3, Albania, AL
    Mybatis 分页插件 PageHelper 5.0.4 发布下载地址
     
正在加载...