提交 00650ce9 authored 作者: rc452860's avatar rc452860 提交者: 87719349@qq.com

feat: 添加数据库数据集时显示表注释

上级 d5164d59
...@@ -15,6 +15,8 @@ public class DBTableDTO { ...@@ -15,6 +15,8 @@ public class DBTableDTO {
private String datasourceId; private String datasourceId;
@ApiModelProperty("数据源名称") @ApiModelProperty("数据源名称")
private String name; private String name;
@ApiModelProperty("表注释")
private String remark;
@ApiModelProperty("启用检测") @ApiModelProperty("启用检测")
private boolean enableCheck; private boolean enableCheck;
@ApiModelProperty("数据集路径") @ApiModelProperty("数据集路径")
......
package io.dataease.dto.datasource;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class TableDesc {
@ApiModelProperty("表名称")
private String name;
@ApiModelProperty("表备注")
private String remark;
}
package io.dataease.provider.datasource; package io.dataease.provider.datasource;
import io.dataease.dto.datasource.TableDesc;
import io.dataease.dto.datasource.TableFiled; import io.dataease.dto.datasource.TableFiled;
import io.dataease.controller.request.datasource.DatasourceRequest; import io.dataease.controller.request.datasource.DatasourceRequest;
...@@ -12,7 +13,7 @@ public abstract class DatasourceProvider { ...@@ -12,7 +13,7 @@ public abstract class DatasourceProvider {
abstract public List<String[]> getData(DatasourceRequest datasourceRequest) throws Exception; abstract public List<String[]> getData(DatasourceRequest datasourceRequest) throws Exception;
abstract public List<String> getTables(DatasourceRequest datasourceRequest) throws Exception; abstract public List<TableDesc> getTables(DatasourceRequest datasourceRequest) throws Exception;
public void checkStatus(DatasourceRequest datasourceRequest) throws Exception { public void checkStatus(DatasourceRequest datasourceRequest) throws Exception {
getData(datasourceRequest); getData(datasourceRequest);
......
...@@ -302,12 +302,12 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -302,12 +302,12 @@ public class JdbcProvider extends DatasourceProvider {
} }
@Override @Override
public List<String> getTables(DatasourceRequest datasourceRequest) throws Exception { public List<TableDesc> getTables(DatasourceRequest datasourceRequest) throws Exception {
List<String> tables = new ArrayList<>(); List<TableDesc> tables = new ArrayList<>();
String queryStr = getTablesSql(datasourceRequest); String queryStr = getTablesSql(datasourceRequest);
try (Connection con = getConnectionFromPool(datasourceRequest); Statement statement = con.createStatement(); ResultSet resultSet = statement.executeQuery(queryStr)) { try (Connection con = getConnectionFromPool(datasourceRequest); Statement statement = con.createStatement(); ResultSet resultSet = statement.executeQuery(queryStr)) {
while (resultSet.next()) { while (resultSet.next()) {
tables.add(resultSet.getString(1)); tables.add(getTableDesc(datasourceRequest, resultSet));
} }
} catch (Exception e) { } catch (Exception e) {
DataEaseException.throwException(e); DataEaseException.throwException(e);
...@@ -317,7 +317,7 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -317,7 +317,7 @@ public class JdbcProvider extends DatasourceProvider {
if (queryView != null) { if (queryView != null) {
try (Connection con = getConnectionFromPool(datasourceRequest); Statement statement = con.createStatement(); ResultSet resultSet = statement.executeQuery(queryView)) { try (Connection con = getConnectionFromPool(datasourceRequest); Statement statement = con.createStatement(); ResultSet resultSet = statement.executeQuery(queryView)) {
while (resultSet.next()) { while (resultSet.next()) {
tables.add(resultSet.getString(1)); tables.add(getTableDesc(datasourceRequest, resultSet));
} }
} catch (Exception e) { } catch (Exception e) {
DataEaseException.throwException(e); DataEaseException.throwException(e);
...@@ -327,6 +327,19 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -327,6 +327,19 @@ public class JdbcProvider extends DatasourceProvider {
return tables; return tables;
} }
private TableDesc getTableDesc(DatasourceRequest datasourceRequest, ResultSet resultSet) throws SQLException {
TableDesc tableDesc = new TableDesc();
DatasourceTypes datasourceType = DatasourceTypes.valueOf(datasourceRequest.getDatasource().getType());
if (datasourceType == DatasourceTypes.oracle) {
tableDesc.setRemark(resultSet.getString(3));
}
if (datasourceType == DatasourceTypes.mysql) {
tableDesc.setRemark(resultSet.getString(2));
}
tableDesc.setName(resultSet.getString(1));
return tableDesc;
}
@Override @Override
public List<String> getSchema(DatasourceRequest datasourceRequest) throws Exception { public List<String> getSchema(DatasourceRequest datasourceRequest) throws Exception {
List<String> schemas = new ArrayList<>(); List<String> schemas = new ArrayList<>();
...@@ -583,6 +596,8 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -583,6 +596,8 @@ public class JdbcProvider extends DatasourceProvider {
switch (datasourceType) { switch (datasourceType) {
case mysql: case mysql:
case mariadb: case mariadb:
JdbcConfiguration jdbcConfiguration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), JdbcConfiguration.class);
return String.format("SELECT TABLE_NAME,TABLE_COMMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA = '%s' ;", jdbcConfiguration.getDataBase());
case de_doris: case de_doris:
case ds_doris: case ds_doris:
case hive: case hive:
...@@ -600,7 +615,7 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -600,7 +615,7 @@ public class JdbcProvider extends DatasourceProvider {
if (StringUtils.isEmpty(oracleConfiguration.getSchema())) { if (StringUtils.isEmpty(oracleConfiguration.getSchema())) {
throw new Exception(Translator.get("i18n_schema_is_empty")); throw new Exception(Translator.get("i18n_schema_is_empty"));
} }
return "select table_name, owner from all_tables where owner='" + oracleConfiguration.getSchema() + "'"; return "select table_name, owner, comments from all_tab_comments where owner='" + oracleConfiguration.getSchema() + "' AND table_type = 'TABLE'";
case pg: case pg:
PgConfiguration pgConfiguration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), PgConfiguration.class); PgConfiguration pgConfiguration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), PgConfiguration.class);
if (StringUtils.isEmpty(pgConfiguration.getSchema())) { if (StringUtils.isEmpty(pgConfiguration.getSchema())) {
...@@ -649,7 +664,7 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -649,7 +664,7 @@ public class JdbcProvider extends DatasourceProvider {
if (StringUtils.isEmpty(oracleConfiguration.getSchema())) { if (StringUtils.isEmpty(oracleConfiguration.getSchema())) {
throw new Exception(Translator.get("i18n_schema_is_empty")); throw new Exception(Translator.get("i18n_schema_is_empty"));
} }
return "select VIEW_NAME from all_views where owner='" + oracleConfiguration.getSchema() + "'"; return "select table_name, owner, comments from all_tab_comments where owner='" + oracleConfiguration.getSchema() + "' AND table_type = 'VIEW'";
case pg: case pg:
PgConfiguration pgConfiguration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), PgConfiguration.class); PgConfiguration pgConfiguration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), PgConfiguration.class);
if (StringUtils.isEmpty(pgConfiguration.getSchema())) { if (StringUtils.isEmpty(pgConfiguration.getSchema())) {
......
...@@ -193,22 +193,23 @@ public class DatasourceService { ...@@ -193,22 +193,23 @@ public class DatasourceService {
DatasourceRequest datasourceRequest = new DatasourceRequest(); DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(ds); datasourceRequest.setDatasource(ds);
datasourceProvider.checkStatus(datasourceRequest); datasourceProvider.checkStatus(datasourceRequest);
List<String> tables = datasourceProvider.getTables(datasourceRequest); List<TableDesc> tables = datasourceProvider.getTables(datasourceRequest);
// 获取当前数据源下的db类型数据集 // 获取当前数据源下的db类型数据集
DatasetTableExample datasetTableExample = new DatasetTableExample(); DatasetTableExample datasetTableExample = new DatasetTableExample();
datasetTableExample.createCriteria().andTypeEqualTo("db").andDataSourceIdEqualTo(datasource.getId()); datasetTableExample.createCriteria().andTypeEqualTo("db").andDataSourceIdEqualTo(datasource.getId());
List<DatasetTable> datasetTables = datasetTableMapper.selectByExampleWithBLOBs(datasetTableExample); List<DatasetTable> datasetTables = datasetTableMapper.selectByExampleWithBLOBs(datasetTableExample);
List<DBTableDTO> list = new ArrayList<>(); List<DBTableDTO> list = new ArrayList<>();
for (String name : tables) { for (TableDesc tableDesc : tables) {
DBTableDTO dbTableDTO = new DBTableDTO(); DBTableDTO dbTableDTO = new DBTableDTO();
dbTableDTO.setDatasourceId(datasource.getId()); dbTableDTO.setDatasourceId(datasource.getId());
dbTableDTO.setName(name); dbTableDTO.setName(tableDesc.getName());
dbTableDTO.setRemark(tableDesc.getRemark());
dbTableDTO.setEnableCheck(true); dbTableDTO.setEnableCheck(true);
dbTableDTO.setDatasetPath(null); dbTableDTO.setDatasetPath(null);
for (DatasetTable datasetTable : datasetTables) { for (DatasetTable datasetTable : datasetTables) {
DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class); DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class);
if (StringUtils.equals(name, dataTableInfoDTO.getTable())) { if (StringUtils.equals(tableDesc.getName(), dataTableInfoDTO.getTable())) {
dbTableDTO.setEnableCheck(false); dbTableDTO.setEnableCheck(false);
List<DatasetGroup> parents = dataSetGroupService.getParents(datasetTable.getSceneId()); List<DatasetGroup> parents = dataSetGroupService.getParents(datasetTable.getSceneId());
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
border border
:label="t.name" :label="t.name"
:disabled="!t.enableCheck" :disabled="!t.enableCheck"
/> >{{ showTableNameWithComment(t) }}</el-checkbox>
</el-tooltip> </el-tooltip>
</el-checkbox-group> </el-checkbox-group>
</el-col> </el-col>
...@@ -133,6 +133,13 @@ export default { ...@@ -133,6 +133,13 @@ export default {
this.kettleRunning = res.data this.kettleRunning = res.data
}) })
}, },
showTableNameWithComment(t) {
if (t.remark) {
return `${t.name}(${t.remark})`
} else {
return `${t.name}`
}
},
save() { save() {
let ds = {} let ds = {}
this.options.forEach(ele => { this.options.forEach(ele => {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论