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;
|
||||
|
||||
import lombok.Getter;
|
||||
|
@ -60,4 +59,26 @@ public enum DbTypeEnum {
|
|||
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;
|
||||
|
||||
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.request.DatabaseInfoRequest;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据库连接的api
|
||||
*
|
||||
|
@ -41,4 +44,12 @@ public interface DataSourceApi {
|
|||
*/
|
||||
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.page.PageResult;
|
||||
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.request.DatabaseInfoRequest;
|
||||
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.SysGroupRequest;
|
||||
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 com.alibaba.druid.pool.DruidDataSource;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
|
@ -60,6 +62,7 @@ import java.sql.Connection;
|
|||
import java.sql.DriverManager;
|
||||
import java.sql.SQLException;
|
||||
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.MASTER_DATASOURCE_NAME;
|
||||
|
@ -108,6 +111,21 @@ public class DatabaseInfoServiceImpl extends ServiceImpl<DatabaseInfoMapper, Dat
|
|||
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
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void del(DatabaseInfoRequest databaseInfoRequest) {
|
||||
|
|
Loading…
Reference in New Issue