diff --git a/caf-database-object-common/src/main/java/io/iec/edp/caf/databaseobject/common/DatabaseObjectCommonUtil.java b/caf-database-object-common/src/main/java/io/iec/edp/caf/databaseobject/common/DatabaseObjectCommonUtil.java
index 59cb2ee47acdcbb58481fa97f81702f6fc6dc9a4..a8003f7f23b03490be1aad6d65aa8534281aab46 100644
--- a/caf-database-object-common/src/main/java/io/iec/edp/caf/databaseobject/common/DatabaseObjectCommonUtil.java
+++ b/caf-database-object-common/src/main/java/io/iec/edp/caf/databaseobject/common/DatabaseObjectCommonUtil.java
@@ -658,6 +658,10 @@ public class DatabaseObjectCommonUtil {
dbInfo.setDbType(DbType.DB2);
} else if (t.equals("opengauss")) {
dbInfo.setDbType(DbType.OpenGauss);
+ } else if (t.equals("gbase8s")) {
+ dbInfo.setDbType(DbType.GBase8s);
+ } else if (t.equals("gbase8c")) {
+ dbInfo.setDbType(DbType.GBase8c);
}
return dbInfo;
@@ -687,7 +691,8 @@ public class DatabaseObjectCommonUtil {
String sql = null;
if (db.getDbType() == DbType.Oracle || db.getDbType() == DbType.DM || db.getDbType() == DbType.Oscar) {
sql = "select table_name from user_tables";
- } else if (db.getDbType() == DbType.PgSQL || db.getDbType() == DbType.HighGo || db.getDbType() == DbType.OpenGauss) {
+ } else if (db.getDbType() == DbType.PgSQL || db.getDbType() == DbType.HighGo || db.getDbType() == DbType.OpenGauss
+ || db.getDbType() == DbType.GBase8s || db.getDbType() == DbType.GBase8c) {
sql = "select tablename from pg_tables where lower(schemaname)='" + db.getUserName().toLowerCase() + "'";
} else if (db.getDbType() == DbType.MySQL) {
sql = "select TABLE_NAME from information_schema.TABLES where TABLE_TYPE='BASE TABLE' and LOWER(TABLE_SCHEMA)='" + db.getDbName().toLowerCase() + "'";
@@ -810,7 +815,8 @@ public class DatabaseObjectCommonUtil {
String sql = "";
if (db.getDbType() == DbType.Oracle || db.getDbType() == DbType.DM || db.getDbType() == DbType.Oscar) {
sql = "select OBJECT_NAME from ALL_OBJECTS where temporary = 'Y' and OBJECT_NAME = '"+tableName.toUpperCase()+"'";
- } else if (db.getDbType() == DbType.PgSQL || db.getDbType() == DbType.HighGo || db.getDbType() == DbType.OpenGauss) {
+ } else if (db.getDbType() == DbType.PgSQL || db.getDbType() == DbType.HighGo || db.getDbType() == DbType.OpenGauss
+ || db.getDbType() == DbType.GBase8s || db.getDbType() == DbType.GBase8c) {
sql = "select tablename from (select to_regclass('"+tableName.toLowerCase()+"') as tablename) t where tablename is not null";
} else if (db.getDbType() == DbType.MySQL) {
return "";
@@ -838,7 +844,8 @@ public class DatabaseObjectCommonUtil {
String sql = null;
if (db.getDbType() == DbType.Oracle || db.getDbType() == DbType.DM || db.getDbType() == DbType.Oscar) {
sql = "SELECT COUNT(1) FROM USER_TAB_COLS WHERE COLUMN_NAME = '" + filed.toUpperCase() + "' AND TABLE_NAME ='" + table.toUpperCase() + "'";
- } else if (db.getDbType() == DbType.PgSQL || db.getDbType() == DbType.HighGo || db.getDbType() == DbType.OpenGauss) {
+ } else if (db.getDbType() == DbType.PgSQL || db.getDbType() == DbType.HighGo || db.getDbType() == DbType.OpenGauss
+ || db.getDbType() == DbType.GBase8s || db.getDbType() == DbType.GBase8c) {
sql = "SELECT COUNT(1) FROM INFORMATION_SCHEMA.COLUMNS WHERE LOWER(TABLE_NAME) = '" + table.toLowerCase() + "' AND LOWER(COLUMN_NAME) = '" + filed.toLowerCase() + "' AND LOWER(TABLE_SCHEMA) = '" + db.getUserName().toLowerCase() + "'";
} else if (db.getDbType() == DbType.MySQL) {
sql = "SELECT COUNT(1) FROM information_schema.columns WHERE table_name='" + table.toLowerCase() + "' AND column_name='" + filed.toLowerCase() + "' AND TABLE_SCHEMA = '" + db.getDbName().toLowerCase() + "'";
diff --git a/caf-database-object-common/src/main/java/io/iec/edp/caf/databaseobject/common/database/GBase8cDatabase.java b/caf-database-object-common/src/main/java/io/iec/edp/caf/databaseobject/common/database/GBase8cDatabase.java
new file mode 100644
index 0000000000000000000000000000000000000000..98da97b141b9af7c9b398ce4b95c23b8b9785bab
--- /dev/null
+++ b/caf-database-object-common/src/main/java/io/iec/edp/caf/databaseobject/common/database/GBase8cDatabase.java
@@ -0,0 +1,27 @@
+package io.iec.edp.caf.databaseobject.common.database;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+
+public class GBase8cDatabase extends AbstractDatabaseImpl {
+
+ public GBase8cDatabase(DbConfigData configData) {
+ super(configData);
+ }
+
+ @Override
+ public Connection getConnection(DbConfigData configData) throws SQLException {
+ Connection c = null;
+ String url = configData.getConnectionString();
+
+ try {
+ Class.forName("cn.gbase8c.Driver");
+ c = DriverManager.getConnection(url, configData.getUserId(), configData.getPassword());
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException("构造GBASE8C数据库连接出错,找不到Driver:" + e);
+ }
+
+ return c;
+ }
+}
\ No newline at end of file
diff --git a/caf-database-object-common/src/main/java/io/iec/edp/caf/databaseobject/common/database/GBase8sDatabase.java b/caf-database-object-common/src/main/java/io/iec/edp/caf/databaseobject/common/database/GBase8sDatabase.java
new file mode 100644
index 0000000000000000000000000000000000000000..f2263695f5b5bef93e24f5b08f6be0133b07ac85
--- /dev/null
+++ b/caf-database-object-common/src/main/java/io/iec/edp/caf/databaseobject/common/database/GBase8sDatabase.java
@@ -0,0 +1,27 @@
+package io.iec.edp.caf.databaseobject.common.database;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+
+public class GBase8sDatabase extends AbstractDatabaseImpl {
+
+ public GBase8sDatabase(DbConfigData configData) {
+ super(configData);
+ }
+
+ @Override
+ public Connection getConnection(DbConfigData configData) throws SQLException {
+ Connection c = null;
+ String url = configData.getConnectionString();
+
+ try {
+ Class.forName("cn.gbase8s.Driver");
+ c = DriverManager.getConnection(url, configData.getUserId(), configData.getPassword());
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException("构造GBASE8S数据库连接出错,找不到Driver:" + e);
+ }
+
+ return c;
+ }
+}
\ No newline at end of file
diff --git a/caf-database-object-deploy-gbase8sgenerator/pom.xml b/caf-database-object-deploy-gbase8sgenerator/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9fb33d1222ecf6e8ed476d92471e67ae0d9c9f8d
--- /dev/null
+++ b/caf-database-object-deploy-gbase8sgenerator/pom.xml
@@ -0,0 +1,27 @@
+
+
+
+ caf-database-object
+ io.iec.edp
+ 0.3.1
+
+ 4.0.0
+
+ caf-database-object-deploy-gbase8sgenerator
+
+
+ io.iec.edp
+ caf-database-object-deploy-defaultsqlgenerator
+ 0.3.1
+ compile
+
+
+
+
+ 8
+ 8
+
+
+
\ No newline at end of file
diff --git a/caf-database-object-deploy-gbase8sgenerator/src/main/java/io/iec/edp/caf/databaseobject/gbase8sgenerator/GBase8sGenerator.java b/caf-database-object-deploy-gbase8sgenerator/src/main/java/io/iec/edp/caf/databaseobject/gbase8sgenerator/GBase8sGenerator.java
new file mode 100644
index 0000000000000000000000000000000000000000..d434f31abd5c8c9dc01548e8d46893c439cdf795
--- /dev/null
+++ b/caf-database-object-deploy-gbase8sgenerator/src/main/java/io/iec/edp/caf/databaseobject/gbase8sgenerator/GBase8sGenerator.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package io.iec.edp.caf.databaseobject.gbase8sgenerator;
+
+import io.iec.edp.caf.databaseobject.defaultsqlgenerator.AbstractDefaultSqlGenerator;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author liu_wei
+ */
+public class GBase8sGenerator extends AbstractDefaultSqlGenerator {
+ @Override
+ public List GetViewSql(String viewName, String defination) {
+ List result = new ArrayList();
+ String dropSql = "drop view if exists " + viewName;
+ result.add(dropSql);
+ String sql = "Create View " + viewName + " AS " + defination;
+ result.add(sql);
+ return result;
+ }
+
+ @Override
+ public String getDefaultValue(String schemaName, String tableName, String colName) {
+ return "SELECT column_default AS defaultvalue FROM information_schema.columns WHERE table_schema= '" + schemaName + "' and table_name = '" + tableName + "' and column_name = '" + colName + "'";
+ }
+}
diff --git a/caf-database-object-deploy-manager/src/main/java/io/iec/edp/caf/databaseobject/DboDeployManager.java b/caf-database-object-deploy-manager/src/main/java/io/iec/edp/caf/databaseobject/DboDeployManager.java
index b865b5dbceeea8ce5dd720d0f3cbc47a58869e74..43c8c9d11a476df3dc61a6ab284c8256f1b9b9f8 100644
--- a/caf-database-object-deploy-manager/src/main/java/io/iec/edp/caf/databaseobject/DboDeployManager.java
+++ b/caf-database-object-deploy-manager/src/main/java/io/iec/edp/caf/databaseobject/DboDeployManager.java
@@ -723,6 +723,14 @@ public class DboDeployManager {
serviceRegistryBuilder.applySetting("hibernate.default_schema", "[" + dbInfo.getUserName() + "]");
serviceRegistryBuilder.applySetting("hibernate.connection.driver_class", "org.opengauss.Driver");
serviceRegistryBuilder.applySetting("hibernate.dialect", "org.hibernate.dialect.PostgreSQL95Dialect");
+ } else if (dbType == DbType.GBase8s) {
+ serviceRegistryBuilder.applySetting("hibernate.default_schema", "[" + dbInfo.getUserName() + "]");
+ serviceRegistryBuilder.applySetting("hibernate.connection.driver_class", "cn.gbase8s.Driver");
+ serviceRegistryBuilder.applySetting("hibernate.dialect", "org.hibernate.dialect.PostgreSQL95Dialect");
+ } else if (dbType == DbType.GBase8c) {
+ serviceRegistryBuilder.applySetting("hibernate.default_schema", "[" + dbInfo.getUserName() + "]");
+ serviceRegistryBuilder.applySetting("hibernate.connection.driver_class", "cn.gbase8c.Driver");
+ serviceRegistryBuilder.applySetting("hibernate.dialect", "org.hibernate.dialect.PostgreSQL95Dialect");
}
}
diff --git a/caf-database-object-deploy-manager/src/main/java/io/iec/edp/caf/databaseobject/DboPhysicalNamingStrategy.java b/caf-database-object-deploy-manager/src/main/java/io/iec/edp/caf/databaseobject/DboPhysicalNamingStrategy.java
index 5040497700e8d75fb01e9016d3d1d95ca21d6c08..3ed7b6b4d7d7c1aa0204925db669514236dda68b 100644
--- a/caf-database-object-deploy-manager/src/main/java/io/iec/edp/caf/databaseobject/DboPhysicalNamingStrategy.java
+++ b/caf-database-object-deploy-manager/src/main/java/io/iec/edp/caf/databaseobject/DboPhysicalNamingStrategy.java
@@ -125,7 +125,7 @@ public class DboPhysicalNamingStrategy implements PhysicalNamingStrategy {
if(DbType.OpenGauss.equals(dbType)){
return LetterCase.lowerCase;
}
- if (name.contains("postgresql") || name.contains("hgdbdialect") || name.contains("mysql")) {
+ if (name.contains("postgresql") || name.contains("hgdbdialect") || name.contains("mysql") || name.contains("gbase")) {
return LetterCase.lowerCase;
} else if (name.contains("oracle") || name.contains("dm") || name.contains("oscar") || name.contains("db2")) {
return LetterCase.upperCase;
diff --git a/caf-database-object-deploy/src/main/java/io/iec/edp/caf/databaseobject/DboDeploy.java b/caf-database-object-deploy/src/main/java/io/iec/edp/caf/databaseobject/DboDeploy.java
index 493af7a41f515767e9af1d0f2d34b0bb3e846406..67769365f202ea8da40bb6aa408a7c33faf52b6b 100644
--- a/caf-database-object-deploy/src/main/java/io/iec/edp/caf/databaseobject/DboDeploy.java
+++ b/caf-database-object-deploy/src/main/java/io/iec/edp/caf/databaseobject/DboDeploy.java
@@ -198,7 +198,7 @@ public class DboDeploy implements CommandLineRunner {
private static void getDbInfo() {
Scanner scanner = new Scanner(System.in);
getDBOPath(scanner);
- System.out.println("请选择数据库类型:1.PgSql 2.SqlServer 3.Oracle 4.DM 5.Highgo 6.MySQL 7.Oscar 8.Kingbase 9.DB2 10.OpenGauss[1]");
+ System.out.println("请选择数据库类型:1.PgSql 2.SqlServer 3.Oracle 4.DM 5.Highgo 6.MySQL 7.Oscar 8.Kingbase 9.DB2 10.OpenGauss 11.GBase8s 12.GBase8c[1]");
String type = scanner.nextLine();
checkDbType(type, scanner);
@@ -285,6 +285,12 @@ public class DboDeploy implements CommandLineRunner {
case OpenGauss:
defaultPort = "5432";
break;
+ case GBase8s:
+ defaultPort = "15432";
+ break;
+ case GBase8c:
+ defaultPort = "15432";
+ break;
default:
defaultPort = "5432";
break;
@@ -325,6 +331,11 @@ public class DboDeploy implements CommandLineRunner {
case OpenGauss:
defaultUserName = "omm";
break;
+ case GBase8s:
+ defaultUserName = "gbase";
+ break;
+ case GBase8c:
+ defaultUserName = "gbase";
default:
defaultUserName = "postgres";
break;
@@ -394,8 +405,14 @@ public class DboDeploy implements CommandLineRunner {
} else if ("10".equals(type) || "OpenGauss".equals(type)) {
dbType = DbType.OpenGauss;
- }else {
- System.out.println("请选择数据库类型:1.PgSql 2.SqlServer 3.Oracle 4.DM 5.Highgo 6.MySQL 7.Oscar 8.Kingbase 9.DB2 10.OpenGauss[1]");
+ }else if ("11".equals(type) || "GBase8s".equals(type)) {
+ dbType = DbType.GBase8s;
+
+ } else if ("12".equals(type) || "GBase8c".equals(type)) {
+ dbType = DbType.GBase8c;
+
+ } else {
+ System.out.println("请选择数据库类型:1.PgSql 2.SqlServer 3.Oracle 4.DM 5.Highgo 6.MySQL 7.Oscar 8.Kingbase 9.DB2 10.OpenGauss 11.GBase8s 12.GBase8c[1]");
type = scanner.nextLine();
checkDbType(type, scanner);
}
diff --git a/caf-database-object-manager/src/main/java/io/iec/edp/caf/databaseobject/manager/export/DatabaseObjectExportManager.java b/caf-database-object-manager/src/main/java/io/iec/edp/caf/databaseobject/manager/export/DatabaseObjectExportManager.java
index d8e992477f34f8420bc0f509214950339dded554..fbab28ccd3124d2bc29809b61537f8a0e89b167d 100644
--- a/caf-database-object-manager/src/main/java/io/iec/edp/caf/databaseobject/manager/export/DatabaseObjectExportManager.java
+++ b/caf-database-object-manager/src/main/java/io/iec/edp/caf/databaseobject/manager/export/DatabaseObjectExportManager.java
@@ -120,6 +120,14 @@ public class DatabaseObjectExportManager {
serviceRegistryBuilder.applySetting("hibernate.default_schema", "[" + dbInfo.getUserName() + "]");
serviceRegistryBuilder.applySetting("hibernate.connection.driver_class", "org.opengauss.Driver");
serviceRegistryBuilder.applySetting("hibernate.dialect", "org.hibernate.dialect.PostgreSQL95Dialect");
+ } else if (dbType == DbType.GBase8s) {
+ serviceRegistryBuilder.applySetting("hibernate.default_schema", "[" + dbInfo.getUserName() + "]");
+ serviceRegistryBuilder.applySetting("hibernate.connection.driver_class", "cn.gbase8s.Driver");
+ serviceRegistryBuilder.applySetting("hibernate.dialect", "org.hibernate.dialect.PostgreSQL95Dialect");
+ } else if (dbType == DbType.GBase8c) {
+ serviceRegistryBuilder.applySetting("hibernate.default_schema", "[" + dbInfo.getUserName() + "]");
+ serviceRegistryBuilder.applySetting("hibernate.connection.driver_class", "cn.gbase8c.Driver");
+ serviceRegistryBuilder.applySetting("hibernate.dialect", "org.hibernate.dialect.PostgreSQL95Dialect");
}
}
@@ -177,7 +185,8 @@ public class DatabaseObjectExportManager {
if (dbType == DbType.Oracle || dbType == DbType.DM || dbType == DbType.Oscar || dbType == DbType.DB2) {
table = table.toUpperCase();
}
- if (dbType == DbType.PgSQL || dbType == DbType.HighGo || dbType == DbType.MySQL || dbType==DbType.OpenGauss) {
+ if (dbType == DbType.PgSQL || dbType == DbType.HighGo || dbType == DbType.MySQL || dbType==DbType.OpenGauss
+ || dbType == DbType.GBase8s || dbType == DbType.GBase8c) {
table = table.toLowerCase();
}
String currentDboName = StringUtils.isNotBlank(dboName) ? dboName : table;
@@ -303,7 +312,8 @@ public class DatabaseObjectExportManager {
* @return DBO中支持的字段类型
*/
private DataType getColumnDataType(ColumnInformation columnInfo) {
- if (dbType == DbType.PgSQL || dbType == DbType.HighGo || dbType == DbType.OpenGauss) {
+ if (dbType == DbType.PgSQL || dbType == DbType.HighGo || dbType == DbType.OpenGauss
+ || dbType == DbType.GBase8s || dbType == DbType.GBase8c) {
return getPgColumnDataType(columnInfo);
} else if (dbType == DbType.SQLServer) {
return getSqlServerColumnDataType(columnInfo);
diff --git a/pom.xml b/pom.xml
index 4339e2e37f9e319a9a2f02916f72dd773116d735..b6e6cef28db5a9fa564fd3343f63285ce8366b2e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,17 +37,19 @@
caf-database-object-deploy-db2generator
caf-database-object-deploy-gaussgenerator
caf-database-object-rpcapi
+ caf-database-object-deploy-gbase8sgenerator
-
- io.iec.edp
- caf-boot-parent
- 0.3.7
-
+
+
+
+
+
+ io.iec.edp
caf-database-object
pom
- 0.3.0
+ 0.3.1