在mybatis-plus 3.4.3.2版本之后已经增加了对GBase 8s的支持(使用GBASEDBT类型),在3.5.2版本中变更类型为GBASE8S。如果使用的是其它版本,按照以下进行修改。

mybatis-plus-annotation模块

在 com.baomidou.mybatisplus.annotation.DbType.java 类中增加

GBASEDBT("gbasedbt", "数据库(GBase 8s)"),

mybatis-plus中增加对GBase 8s的支持_bc

注册GBase 8s的数据库类型,名称为GBASEDBT

mybatis-plus-extension模块

1、增加com.baomidou.mybatisplus.extension.plugins.pagination.dialects.GBasedbtDialect.java类

package com.baomidou.mybatisplus.extension.plugins.pagination.dialects;
 
import com.baomidou.mybatisplus.extension.plugins.pagination.DialectModel;
 
public class GBasedbtDialect implements IDialect {
 
    @Override
    public DialectModel buildPaginationSql(String originalSql, long offset, long limit) {
        StringBuilder sql = new StringBuilder(originalSql)
            .insert(6, " SKIP " + offset + " FIRST " + limit);
        return new DialectModel(sql.toString());
    }
}

mybatis-plus中增加对GBase 8s的支持_sed_02

2、在com.baomidou.mybatisplus.extension.plugins.pagination.DialectFactory.java类中增加

} else if (dbType == DbType.GBASEDBT) {
    dialect = new GBasedbtDialect();

mybatis-plus中增加对GBase 8s的支持_ide_03

数据库类型GBASEDBT使用的方言类型

3、在com.baomidou.mybatisplus.extension.toolkit.JdbcUtils.java类中的getDbType(String jdbcUrl)中增加JDBC类型注册

} else if (url.contains(":gbasedbt-sqli:") ) {
    return DbType.GBASEDBT;

mybatis-plus中增加对GBase 8s的支持_sed_04

4、增加com.baomidou.mybatisplus.extension.incrementer.GBasedbtKeyGenerator.java类,用于自增长类型

package com.baomidou.mybatisplus.extension.incrementer;
 
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
 
public class GBasedbtKeyGenerator implements IKeyGenerator {
 
    @Override
    public String executeSql(String incrementerName) {
        return "SELECT " + incrementerName + ".NEXTVAL FROM DUAL";
    }
 
    @Override
    public DbType dbType() {
        return DbType.GBASEDBT;
    }
}

mybatis-plus中增加对GBase 8s的支持_bc_05