设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 软件追踪 查看内容

Mybatis分页插件PageHelper 5.0.4发布

2017-8-1 23:08| 发布者: joejoe0332| 查看: 2349| 评论: 0|原作者: oschina|来自: oschina

摘要: Mybatis分页插件 - PageHelper 5.0.4 发布了。 如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。该插件目前支持以下数据库的物理分页OracleMysqlMariaDBSQLiteHsqldbPostgreSQLDB2SqlServe ...

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: IDCOUNTRYNAMECOUNTRYCODE
TRACE [main- <==        Row: 1AngolaAO
TRACE [main- <==        Row: 2AfghanistanAF
TRACE [main- <==        Row: 3AlbaniaAL

酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部