在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)"),
注册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());
}
}
2、在com.baomidou.mybatisplus.extension.plugins.pagination.DialectFactory.java类中增加
} else if (dbType == DbType.GBASEDBT) {
dialect = new GBasedbtDialect();
数据库类型GBASEDBT使用的方言类型
3、在com.baomidou.mybatisplus.extension.toolkit.JdbcUtils.java类中的getDbType(String jdbcUrl)中增加JDBC类型注册
} else if (url.contains(":gbasedbt-sqli:") ) {
return DbType.GBASEDBT;
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;
}
}