mirror of https://gitee.com/stylefeng/roses
【7.2.4】更新一个获取数据源信息的api
parent
55847454b6
commit
b9f5935ee3
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
package cn.stylefeng.roses.kernel.rule.enums;
|
package cn.stylefeng.roses.kernel.rule.enums;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
@ -60,4 +59,26 @@ public enum DbTypeEnum {
|
||||||
this.validateQuery = validateQuery;
|
this.validateQuery = validateQuery;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过url判断是哪种数据库
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2022/8/23 14:22
|
||||||
|
*/
|
||||||
|
public static String getTypeByUrl(String url) {
|
||||||
|
if (url == null) {
|
||||||
|
return MYSQL.getUrlWords();
|
||||||
|
}
|
||||||
|
if (url.contains(DbTypeEnum.ORACLE.getUrlWords())) {
|
||||||
|
return ORACLE.getUrlWords();
|
||||||
|
} else if (url.contains(DbTypeEnum.DM.getUrlWords())) {
|
||||||
|
return DM.getUrlWords();
|
||||||
|
} else if (url.contains(DbTypeEnum.MS_SQL.getUrlWords())) {
|
||||||
|
return MS_SQL.getUrlWords();
|
||||||
|
} else if (url.contains(DbTypeEnum.PG_SQL.getUrlWords())) {
|
||||||
|
return PG_SQL.getUrlWords();
|
||||||
|
}
|
||||||
|
return MYSQL.getUrlWords();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
package cn.stylefeng.roses.kernel.dsctn.api;
|
package cn.stylefeng.roses.kernel.dsctn.api;
|
||||||
|
|
||||||
import cn.stylefeng.roses.kernel.dsctn.api.exception.DatasourceContainerException;
|
import cn.stylefeng.roses.kernel.dsctn.api.exception.DatasourceContainerException;
|
||||||
|
import cn.stylefeng.roses.kernel.dsctn.api.pojo.DataBaseInfoDto;
|
||||||
import cn.stylefeng.roses.kernel.dsctn.api.pojo.DataSourceDto;
|
import cn.stylefeng.roses.kernel.dsctn.api.pojo.DataSourceDto;
|
||||||
import cn.stylefeng.roses.kernel.dsctn.api.pojo.request.DatabaseInfoRequest;
|
import cn.stylefeng.roses.kernel.dsctn.api.pojo.request.DatabaseInfoRequest;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据库连接的api
|
* 数据库连接的api
|
||||||
*
|
*
|
||||||
|
@ -41,4 +44,12 @@ public interface DataSourceApi {
|
||||||
*/
|
*/
|
||||||
void deleteByDatasourceCode(String datasourceCode);
|
void deleteByDatasourceCode(String datasourceCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有数据源连接信息
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2022/8/23 14:03
|
||||||
|
*/
|
||||||
|
List<DataBaseInfoDto> getDatasourceList();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
package cn.stylefeng.roses.kernel.dsctn.api.pojo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据库连接信息的DTO
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2022/8/23 14:06
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class DataBaseInfoDto {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据库连接的id
|
||||||
|
*/
|
||||||
|
private Long dbId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据库类型
|
||||||
|
*/
|
||||||
|
private String dbType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据库连接的名称
|
||||||
|
*/
|
||||||
|
private String dbName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据库连接的备注
|
||||||
|
*/
|
||||||
|
private String remarks;
|
||||||
|
|
||||||
|
}
|
|
@ -33,6 +33,7 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||||
import cn.stylefeng.roses.kernel.db.api.pojo.druid.DruidProperties;
|
import cn.stylefeng.roses.kernel.db.api.pojo.druid.DruidProperties;
|
||||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||||
import cn.stylefeng.roses.kernel.dsctn.api.exception.DatasourceContainerException;
|
import cn.stylefeng.roses.kernel.dsctn.api.exception.DatasourceContainerException;
|
||||||
|
import cn.stylefeng.roses.kernel.dsctn.api.pojo.DataBaseInfoDto;
|
||||||
import cn.stylefeng.roses.kernel.dsctn.api.pojo.DataSourceDto;
|
import cn.stylefeng.roses.kernel.dsctn.api.pojo.DataSourceDto;
|
||||||
import cn.stylefeng.roses.kernel.dsctn.api.pojo.request.DatabaseInfoRequest;
|
import cn.stylefeng.roses.kernel.dsctn.api.pojo.request.DatabaseInfoRequest;
|
||||||
import cn.stylefeng.roses.kernel.dsctn.context.DataSourceContext;
|
import cn.stylefeng.roses.kernel.dsctn.context.DataSourceContext;
|
||||||
|
@ -45,6 +46,7 @@ import cn.stylefeng.roses.kernel.group.api.constants.GroupConstants;
|
||||||
import cn.stylefeng.roses.kernel.group.api.pojo.SysGroupDTO;
|
import cn.stylefeng.roses.kernel.group.api.pojo.SysGroupDTO;
|
||||||
import cn.stylefeng.roses.kernel.group.api.pojo.SysGroupRequest;
|
import cn.stylefeng.roses.kernel.group.api.pojo.SysGroupRequest;
|
||||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||||
|
import cn.stylefeng.roses.kernel.rule.enums.DbTypeEnum;
|
||||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||||
import com.alibaba.druid.pool.DruidDataSource;
|
import com.alibaba.druid.pool.DruidDataSource;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
@ -60,6 +62,7 @@ import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static cn.stylefeng.roses.kernel.dsctn.api.constants.DatasourceContainerConstants.DATASOURCE_GROUP_CODE;
|
import static cn.stylefeng.roses.kernel.dsctn.api.constants.DatasourceContainerConstants.DATASOURCE_GROUP_CODE;
|
||||||
import static cn.stylefeng.roses.kernel.dsctn.api.constants.DatasourceContainerConstants.MASTER_DATASOURCE_NAME;
|
import static cn.stylefeng.roses.kernel.dsctn.api.constants.DatasourceContainerConstants.MASTER_DATASOURCE_NAME;
|
||||||
|
@ -108,6 +111,21 @@ public class DatabaseInfoServiceImpl extends ServiceImpl<DatabaseInfoMapper, Dat
|
||||||
DataSourceContext.removeDataSource(datasourceCode);
|
DataSourceContext.removeDataSource(datasourceCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DataBaseInfoDto> getDatasourceList() {
|
||||||
|
LambdaQueryWrapper<DatabaseInfo> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.select(DatabaseInfo::getDbId, DatabaseInfo::getDbName, DatabaseInfo::getRemarks, DatabaseInfo::getJdbcUrl);
|
||||||
|
List<DatabaseInfo> list = this.list(wrapper);
|
||||||
|
|
||||||
|
return list.stream().map(item -> {
|
||||||
|
DataBaseInfoDto dataBaseInfoDto = new DataBaseInfoDto();
|
||||||
|
BeanUtil.copyProperties(item, dataBaseInfoDto);
|
||||||
|
String type = DbTypeEnum.getTypeByUrl(item.getJdbcUrl());
|
||||||
|
dataBaseInfoDto.setDbType(type);
|
||||||
|
return dataBaseInfoDto;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void del(DatabaseInfoRequest databaseInfoRequest) {
|
public void del(DatabaseInfoRequest databaseInfoRequest) {
|
||||||
|
|
Loading…
Reference in New Issue