diff --git a/dbswitch-common/src/main/java/com/gitee/dbswitch/common/type/ProductTypeEnum.java b/dbswitch-common/src/main/java/com/gitee/dbswitch/common/type/ProductTypeEnum.java index c036e591..4e1367e0 100644 --- a/dbswitch-common/src/main/java/com/gitee/dbswitch/common/type/ProductTypeEnum.java +++ b/dbswitch-common/src/main/java/com/gitee/dbswitch/common/type/ProductTypeEnum.java @@ -217,11 +217,11 @@ public enum ProductTypeEnum { /** * OceanBase数据库类型 */ - OCEANBASE(22, "`", "OceanBase", "com.oceanbase.jdbc.Driver", 2881, - "/* ping */ SELECT 1", + OCEANBASE(22, "", "OceanBase", "com.oceanbase.jdbc.Driver", 2881, + "/* ping */", "jdbc:oceanbase://", new String[]{"jdbc:oceanbase://{host}[:{port}]/[{database}][\\?{params}]"}, - "jdbc:oceanbase://127.0.0.1:2881/test?pool=false&useUnicode=true&characterEncoding=utf-8&useSSL=false&"), + "jdbc:oceanbase://127.0.0.1:2881/test?pool=false&useUnicode=true&characterEncoding=utf-8&useSSL=false"), ; diff --git a/dbswitch-product/dbswitch-product-oceanbase/src/main/java/com/gitee/dbswitch/product/oceanbase/OceanbaseMetadataQueryProvider.java b/dbswitch-product/dbswitch-product-oceanbase/src/main/java/com/gitee/dbswitch/product/oceanbase/OceanbaseMetadataQueryProvider.java index 91b208b5..75b449c3 100644 --- a/dbswitch-product/dbswitch-product-oceanbase/src/main/java/com/gitee/dbswitch/product/oceanbase/OceanbaseMetadataQueryProvider.java +++ b/dbswitch-product/dbswitch-product-oceanbase/src/main/java/com/gitee/dbswitch/product/oceanbase/OceanbaseMetadataQueryProvider.java @@ -9,6 +9,7 @@ ///////////////////////////////////////////////////////////// package com.gitee.dbswitch.product.oceanbase; +import cn.hutool.core.text.StrPool; import com.gitee.dbswitch.common.type.ProductTypeEnum; import com.gitee.dbswitch.product.mysql.MysqlMetadataQueryProvider; import com.gitee.dbswitch.provider.ProductFactoryProvider; @@ -21,6 +22,8 @@ import com.gitee.dbswitch.schema.SourceProperties; import com.gitee.dbswitch.schema.TableDescription; import java.sql.Connection; import java.util.List; +import java.util.stream.Collectors; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; public class OceanbaseMetadataQueryProvider extends AbstractMetadataProvider { @@ -127,7 +130,10 @@ public class OceanbaseMetadataQueryProvider extends AbstractMetadataProvider { @Override public void appendPrimaryKeyForCreateTableSql(StringBuilder builder, List primaryKeys) { - this.delegate.appendPrimaryKeyForCreateTableSql(builder, primaryKeys); + if (CollectionUtils.isNotEmpty(primaryKeys)) { + String primaryKeyAsString = getPrimaryKeyAsString(primaryKeys); + builder.append(", PRIMARY KEY (").append(primaryKeyAsString).append(")"); + } } @Override @@ -138,7 +144,15 @@ public class OceanbaseMetadataQueryProvider extends AbstractMetadataProvider { @Override public String getPrimaryKeyAsString(List pks) { - return this.delegate.getPrimaryKeyAsString(pks); + if (!pks.isEmpty()) { + return quoteName( + StringUtils.join( + pks.stream().distinct().collect(Collectors.toList()) + , quoteName(StrPool.COMMA) + ) + ); + } + return StringUtils.EMPTY; } @Override