前言

客户要求,需要将MySQL替换为国产行云数据库(cirrodata)。


一、Mybatis-Plus整合国产行云数据库(cirrodata)

CirroData是北京东方国信科技股份有限公司历时九年自主研发的企业级新一代云化数据库。
CirroData官网地址

二、使用步骤

1.引入依赖

依赖如下(需要联系技术支持人员获取):
libthrift-0.14.0.jar
lz4-1.3.0.jar
slf4j-api-1.7.28.jar
XCloudJDBC-2.15.4.jar
XCloudJDBC_SP_Procedure_Parser-0.1.7.jar

2.修改数据库连接信息

代码如下(示例):

spring:
  datasource:
    driver-class-name: com.bonc.xcloud.jdbc.XCloudDriver
    url: jdbc:xcloud:@ip:port/database
    username: username
    password: password

3.MyCirroDataDialect自定义方言

代码如下(示例):

public class MyCirroDataDialect extends AbstractHelperDialect {
    @Override
    public Object processPageParameter(MappedStatement ms, Map<String, Object> paramMap, Page page, BoundSql boundSql, CacheKey pageKey) {
        paramMap.put(PAGEPARAMETER_FIRST, page.getStartRow());
        paramMap.put(PAGEPARAMETER_SECOND, page.getEndRow());
        //处理pageKey
        pageKey.update(page.getEndRow());
        pageKey.update(page.getStartRow());
        //处理参数配置
        handleParameter(boundSql, ms, long.class, long.class);
        return paramMap;
    }

    @Override
    public String getPageSql(String sql, Page page, CacheKey pageKey) {
        StringBuilder sqlBuilder = new StringBuilder(sql.length() + 16);
        sqlBuilder.append(sql);
        sqlBuilder.append("\n LIMIT ( ?, ? )");
        return sqlBuilder.toString();
    }
}

4.修改自动分页配置

代码如下(示例):

pagehelper:
  # 自定义方言,此处填写全限定类名
  helperDialect: com.xxx.MyCirroDataDialect
  # 默认是count(1),需要改为count(*)
  count-column: '*'

5.startPage替换为offsetPage

代码如下(示例):

PageMethod.offsetPage((pageParam.getPageNum() - 1 ) * pageParam.getPageSize(), pageParam.getPageSize(), pageParam.getCount());

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐