diff --git a/pom.xml b/pom.xml
index 8d22ffbd..b491e0dc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -74,6 +74,17 @@
jtds
1.3.1
+
+ com.oracle
+ ojdbc14
+ 12
+
+
+
+ com.dameng
+ DmJdbcDriver18
+ 8.1.1.193
+
diff --git a/zyplayer-doc-data/pom.xml b/zyplayer-doc-data/pom.xml
index 67064548..34f8ba6a 100644
--- a/zyplayer-doc-data/pom.xml
+++ b/zyplayer-doc-data/pom.xml
@@ -51,6 +51,15 @@
mysql
mysql-connector-java
+
+ com.oracle
+ ojdbc14
+
+
+
+ com.dameng
+ DmJdbcDriver18
+
net.sourceforge.jtds
jtds
diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/vo/TableDdlVo.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/vo/TableDdlVo.java
index db47bc39..492c166e 100644
--- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/vo/TableDdlVo.java
+++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/vo/TableDdlVo.java
@@ -17,6 +17,7 @@ public class TableDdlVo {
private String mysql;
private String sqlserver;
private String oracle;
+ private String dm;
private String postgresql;
private String hive;
@@ -31,6 +32,9 @@ public class TableDdlVo {
if (Objects.equals(current, DatabaseProductEnum.ORACLE.name().toLowerCase())) {
return oracle;
}
+ if (Objects.equals(current, DatabaseProductEnum.DM.name().toLowerCase())) {
+ return dm;
+ }
if (Objects.equals(current, DatabaseProductEnum.POSTGRESQL.name().toLowerCase())) {
return postgresql;
}
diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/DatasourceUtil.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/DatasourceUtil.java
index dd2069f2..a8316867 100644
--- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/DatasourceUtil.java
+++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/DatasourceUtil.java
@@ -29,10 +29,11 @@ public class DatasourceUtil {
put(DatabaseProductEnum.MYSQL.getDriverClassName(), new MysqlAnalysis());
put(DatabaseProductEnum.HIVE.getDriverClassName(), new HiveAnalysis());
put(DatabaseProductEnum.ORACLE.getDriverClassName(), new OracleAnalysis());
+ put(DatabaseProductEnum.DM.getDriverClassName(), new DmAnalysis());
put(DatabaseProductEnum.POSTGRESQL.getDriverClassName(), new PostgresqlAnalysis());
put(DatabaseProductEnum.SQLSERVER.getDriverClassName(), new SqlserverAnalysis());
}};
-
+
public static DatabaseFactoryBean createDatabaseFactoryBean(DbDatasource dbDatasource, boolean breakAfterAcquireFailure) throws Exception {
// 描述连接信息的对象
DatabaseFactoryBean databaseFactoryBean = new DatabaseFactoryBean();
diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/analysis/DmAnalysis.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/analysis/DmAnalysis.java
new file mode 100644
index 00000000..a904e454
--- /dev/null
+++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/analysis/DmAnalysis.java
@@ -0,0 +1,27 @@
+package com.zyplayer.doc.db.framework.configuration.analysis;
+
+import com.zyplayer.doc.db.framework.db.bean.DatabaseFactoryBean;
+import com.zyplayer.doc.db.framework.db.enums.DatabaseProductEnum;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+
+/**
+ * 达梦链接url解析
+ *
+ * @author diantu
+ * @since 2023-02-01
+ */
+public class DmAnalysis implements AnalysisApi{
+
+ @Override
+ public Resource[] process(String dbUrl, DatabaseFactoryBean databaseFactoryBean) throws Exception {
+ // jdbc:dm://127.0.0.1:5236?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf-8
+ String[] urlParamArr = dbUrl.split("\\?");
+ String[] urlDbNameArr = urlParamArr[0].split("://");
+ urlDbNameArr = urlDbNameArr[0].split(":");
+ databaseFactoryBean.setDbName(urlDbNameArr[urlDbNameArr.length - 1]);
+ databaseFactoryBean.setDatabaseProduct(DatabaseProductEnum.DM);
+ PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
+ return resolver.getResources("classpath:com/zyplayer/doc/db/framework/db/mapper/dm/*.xml");
+ }
+}
diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/analysis/OracleAnalysis.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/analysis/OracleAnalysis.java
index 9fe8f21c..d40edc3a 100644
--- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/analysis/OracleAnalysis.java
+++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/analysis/OracleAnalysis.java
@@ -12,11 +12,10 @@ import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
* @since 2021-05-13
*/
public class OracleAnalysis implements AnalysisApi {
-
+
@Override
public Resource[] process(String dbUrl, DatabaseFactoryBean databaseFactoryBean) throws Exception {
// jdbc:oracle:thin:@127.0.0.1:1521:user_info
- // 代码是写好的,但还没有oracle的库让我测试过~
String[] urlParamArr = dbUrl.split("\\?")[0].split("@");
String[] urlDbNameArr = urlParamArr[0].split("/");
if (urlDbNameArr.length <= 1) {
@@ -27,5 +26,5 @@ public class OracleAnalysis implements AnalysisApi {
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
return resolver.getResources("classpath:com/zyplayer/doc/db/framework/db/mapper/oracle/*.xml");
}
-
+
}
diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/enums/DatabaseProductEnum.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/enums/DatabaseProductEnum.java
index 1b84d871..424feb79 100644
--- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/enums/DatabaseProductEnum.java
+++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/enums/DatabaseProductEnum.java
@@ -10,20 +10,21 @@ public enum DatabaseProductEnum {
MYSQL("com.mysql.jdbc.Driver"),
SQLSERVER("net.sourceforge.jtds.jdbc.Driver"),
ORACLE("oracle.jdbc.driver.OracleDriver"),
+ DM("dm.jdbc.driver.DmDriver"),
POSTGRESQL("org.postgresql.Driver"),
HIVE("org.apache.hive.jdbc.HiveDriver"),
;
-
+
private String driverClassName;
-
+
DatabaseProductEnum(String driverClassName) {
this.driverClassName = driverClassName;
}
-
+
public String getDriverClassName() {
return driverClassName;
}
-
+
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/dm/DmBaseMapper.xml b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/dm/DmBaseMapper.xml
new file mode 100644
index 00000000..83e64435
--- /dev/null
+++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/dm/DmBaseMapper.xml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ comment on table ${dbName}.${tableName} is #{new Desc}
+
+
+
+
+ comment on column ${dbName}.${tableName}.${columnName} is #{new Desc}
+
+
+
+ delete from ${dbName}.${tableName} where
+
+ ${key} = #{value}
+
+
+
+
diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/dm/DmMapper.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/dm/DmMapper.java
new file mode 100644
index 00000000..189ae80f
--- /dev/null
+++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/dm/DmMapper.java
@@ -0,0 +1,10 @@
+package com.zyplayer.doc.db.framework.db.mapper.dm;
+
+/**
+ * 达梦数据库的mapper持有对象
+ *
+ * @author diantu
+ * @since 2023年2月1日
+ */
+public interface DmMapper {
+}
diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/service/database/DmServiceImpl.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/service/database/DmServiceImpl.java
new file mode 100644
index 00000000..69844970
--- /dev/null
+++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/service/database/DmServiceImpl.java
@@ -0,0 +1,29 @@
+package com.zyplayer.doc.db.service.database;
+
+import com.zyplayer.doc.db.framework.db.enums.DatabaseProductEnum;
+import org.springframework.stereotype.Service;
+
+/**
+ * 达梦数据查询服务实现类
+ *
+ * @author diantu
+ * @since 2023-02-01
+ */
+@Service
+public class DmServiceImpl extends DbBaseService {
+
+ @Override
+ public DatabaseProductEnum getDatabaseProduct() {
+ return DatabaseProductEnum.DM;
+ }
+
+ /**
+ * 达梦数据库中没有也不需要use语句,指定数据库名的情况下直接返回空即可
+ * @author diantu
+ * @since 2023-02-01
+ */
+ @Override
+ public String getUseDbSql(String dbName) {
+ return null;
+ }
+}
diff --git a/zyplayer-doc-manage/pom.xml b/zyplayer-doc-manage/pom.xml
index 801a84d2..15a04fb3 100644
--- a/zyplayer-doc-manage/pom.xml
+++ b/zyplayer-doc-manage/pom.xml
@@ -61,6 +61,15 @@
mysql
mysql-connector-java
+
+ com.oracle
+ ojdbc14
+
+
+
+ com.dameng
+ DmJdbcDriver18
+
diff --git a/zyplayer-doc-ui/db-ui/src/views/data/DatasourceManage.vue b/zyplayer-doc-ui/db-ui/src/views/data/DatasourceManage.vue
index efae92f6..897cc260 100644
--- a/zyplayer-doc-ui/db-ui/src/views/data/DatasourceManage.vue
+++ b/zyplayer-doc-ui/db-ui/src/views/data/DatasourceManage.vue
@@ -57,6 +57,7 @@
+
@@ -278,7 +279,9 @@
this.urlPlaceholder = "例:jdbc:postgresql://127.0.0.1:5432/user_info";
} else if (this.newDatasource.driverClassName == 'org.apache.hive.jdbc.HiveDriver') {
this.urlPlaceholder = "例:jdbc:hive2://127.0.0.1:21050/user_info;auth=noSasl";
- }
+ } else if (this.newDatasource.driverClassName == 'dm.jdbc.driver.DmDriver'){
+ this.urlPlaceholder = "例:jdbc:dm://127.0.0.1:5236?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf-8";
+ }
},
handleCurrentChange(to) {
this.currentPage = to;