级联查询修改
This commit is contained in:
parent
b94e7e75f3
commit
b6a4443ce1
|
|
@ -84,37 +84,57 @@ public class StasDataSourceServiceImpl extends ServiceImpl<StasDataSourceMapper,
|
|||
|
||||
@Override
|
||||
public List<String> queryUserList(String sourceId) {
|
||||
return queryDatabaseMetadata(sourceId, "SELECT username FROM ALL_USERS", "username");
|
||||
StasDataSource stasDataSource = this.baseMapper.selectById(sourceId);
|
||||
if(SourceDataTypeEnum.ORACLE.getKey() == stasDataSource.getType()){
|
||||
return queryDatabaseMetadata(stasDataSource, "SELECT username FROM ALL_USERS", "username");
|
||||
} else {
|
||||
return queryDatabaseMetadata(stasDataSource, "SELECT datname AS username FROM pg_database WHERE datistemplate = false ORDER BY datname;", "username");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> queryTableList(String sourceId, String username) {
|
||||
String sql = "SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = ?";
|
||||
return queryDatabaseMetadata(sourceId, sql, "TABLE_NAME", username);
|
||||
StasDataSource stasDataSource = this.baseMapper.selectById(sourceId);
|
||||
if(SourceDataTypeEnum.ORACLE.getKey() == stasDataSource.getType()){
|
||||
String sql = "SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = ?";
|
||||
return queryDatabaseMetadata(stasDataSource, sql, "TABLE_NAME", username);
|
||||
} else {
|
||||
String sql = "SELECT tablename AS table_name FROM pg_tables WHERE schemaname = ?";
|
||||
return queryDatabaseMetadata(stasDataSource, sql, "table_name", "public");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> queryColumnList(String sourceId, String username, String tableName) {
|
||||
String sql = "SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE OWNER = ? AND TABLE_NAME = ?";
|
||||
return queryDatabaseMetadata(sourceId, sql, "COLUMN_NAME", username, tableName);
|
||||
StasDataSource stasDataSource = this.baseMapper.selectById(sourceId);
|
||||
if(SourceDataTypeEnum.ORACLE.getKey() == stasDataSource.getType()){
|
||||
String sql = "SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE OWNER = ? AND TABLE_NAME = ?";
|
||||
return queryDatabaseMetadata(stasDataSource, sql, "COLUMN_NAME", username, tableName);
|
||||
} else {
|
||||
String sql = "SELECT column_name FROM information_schema.columns WHERE table_schema = ? AND table_name = ?";
|
||||
return queryDatabaseMetadata(stasDataSource, sql, "column_name", "public", tableName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通用数据库元数据查询方法
|
||||
* @param sourceId 数据源ID
|
||||
* @param stasDataSource 数据源
|
||||
* @param sql 查询SQL
|
||||
* @param columnName 要获取的列名
|
||||
* @param params SQL参数
|
||||
* @return 查询结果列表
|
||||
*/
|
||||
private List<String> queryDatabaseMetadata(String sourceId, String sql, String columnName, Object... params) {
|
||||
StasDataSource stasDataSource = this.baseMapper.selectById(sourceId);
|
||||
private List<String> queryDatabaseMetadata(StasDataSource stasDataSource, String sql, String columnName, Object... params) {
|
||||
if (stasDataSource == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
String urlSource = DBUtil.ORACLE_URL_PREFIX + stasDataSource.getIpAddress() + ":"
|
||||
+ stasDataSource.getPort() + stasDataSource.getServeId();
|
||||
String urlSource;
|
||||
if(SourceDataTypeEnum.POSTGRES.getKey() == stasDataSource.getType()){
|
||||
urlSource = DBUtil.POSTGRES_URL_PREFIX + stasDataSource.getIpAddress() + ":" + stasDataSource.getPort() + stasDataSource.getServeId();
|
||||
}else {
|
||||
urlSource = DBUtil.ORACLE_URL_PREFIX + stasDataSource.getIpAddress() + ":" + stasDataSource.getPort() + stasDataSource.getServeId();
|
||||
}
|
||||
|
||||
List<String> resultList = new ArrayList<>();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user