您的位置 首页 java

SqlHelper发布—比Pagehelper更好用的分页插件

起源

前段时间开启了一个新的项目,在选择分页插件时,发现 github 上很流行的一个是pagehelper,在 百度 上搜索了一下,使用量。由于项目紧急,所先拿来用了。但是我知道它并不适合我们。原因是它有如下几个缺点:

1) 对国产数据库支持不足

2) 扩展不方便

3) 配置复杂

4) 性能底下 (不要喷我, 因为它不是用的占位符?,发挥不了PrepareSatement的优势)

5) 只支持 Mybatis

鉴于它的这些不足,我就趁闲暇时间新开发了一款解决上述缺点的分页工具,它已经在公司里的两个项目得到了验证。但它不仅仅是个分页工具那么简单,目前支持的特性有Pagination、UrlParser,未来会支持更多特性。

关键特性

  1. 支持MyBatis, JFinal,Ebean,Mango
  2. 支持 90+ 种数据库, 支持列表参见 here . 包含了几乎所有的国产数据库:
  • TiDB (北京平凯星辰科技))
  • Doris (Apache Doris,百度研发)
  • MaxCompute (阿里巴巴)
  • K-DB (浪潮)
  • GBase (南大通用)
  • DM (达梦)
  • OSCAR (神州通用)
  • HighGo (瀚高)
  • KingBase (金仓)
  • OpenBase ( 东软 )
  • SequoiaDB (巨杉)

如果你想知道所有的数据库排名的话,你可以在这里找到: DB Engines.

  1. 同一个应用中支持多种数据库
  2. 不需要配置dialect,可以自动的获取。
  3. 比 Mybatis-PageHelper性能更高 , 原因是limit , offset等参数使用 PrepareStatement placeholder ‘?’ , mybatis 硬编码 拼接的
  4. 通过Java SPI的方式支持了插件
  5. 支持 spring boot 1.x , 2.x
  6. 支持 mybatis 3.x
  7. 支持 JDK6+

Vs Pagehelper

安装

可以在多种场景下使用,支持MyBatis,JFinal,EBean等。先就说说MyBatis下如何使用:

1) 与Mybatis + SpringBoot结合使用

此应用环境下,只需导入下列包即可:

 <groupId>com.github.fangjinuo.sqlhelper</groupId>
 <artifactId>sqlhelper-mybatis-spring-boot-autoconfigure</artifactId>
 <version>${sqlhelper.version}</version>
 </dependency>
 <dependency>
 <groupId>com.github.fangjinuo.sqlhelper</groupId>
 <artifactId>sqlhelper-mybatis-spring-boot-starter</artifactId>
 <version>${sqlhelper.version}</version>
 </dependency>
 

2)与MyBatis (无spring boot)结合使用

此应用环境下,使用也不麻烦。

第一步,导入依赖:

<dependency>
 <groupId>com.github.fangjinuo.sqlhelper</groupId>
 <artifactId>sqlhelper-dialect</artifactId>
 <version>${sqlhelper.version}</version>
 </dependency>
 

第二步:配置插件:

<configuration>
 ...
 <databaseIdProvider type="DB_VENDOR">
 <property name="SQL Server" value=" sqlserver "/>
 <property name="DB2" value="db2"/>
 <property name="Oracle" value="oracle" />
 </databaseIdProvider>
 ...
 <settings>
 ...
 <setting name="defaultScriptingLanguage" value="com.github.fangjinuo.sqlhelper.mybatis.plugins.pagination.CustomScriptLanguageDriver" />
 ...
 </settings>
 ...
 </configuration>
 
 <plugins>
 <plugin interceptor="com.github.fangjinuo.sqlhelper.mybatis.plugins.pagination.MybatisPaginationPlugin" />
 </plugins>
 

使用

 @GetMapping
 public PagingResult list(){
 User queryCondtion = new User();
 queryCondtion.setAge(10);
 Paging request  request = new PagingRequest()
 .setPageNo(1)
 .setPageSize(10);
 PagingRequestContextHolder.getContext().setPagingRequest(request);
 List users = userDao.selectByLimit(queryCondtion);
 request.getResult().setItems(users);
 return request.getResult();
 }
 

从mybatis-pagehelper迁移

为了兼容已有的应用,特意提供了从mybatis-pagehelper迁移工具。使用也很简单,把mybatis-pagehelper.jar移除,导入下面的包即可。

 <dependency>
 <groupId>com.github.fangjinuo.sqlhelper</groupId>
 <artifactId>sqlhelper-mybatis-over-pagehelper</artifactId>
 <version>${sqlhelper.version}</version>
 </dependency>
 

支持

文章来源:智云一二三科技

文章标题:SqlHelper发布—比Pagehelper更好用的分页插件

文章地址:https://www.zhihuclub.com/198214.shtml

关于作者: 智云科技

热门文章

网站地图