|
|
@@ -52,8 +52,11 @@ public class DataBasesService {
|
|
|
}
|
|
|
Databases databases = new Databases();
|
|
|
BeanUtils.copyProperties(databasesInfo, databases);
|
|
|
+ //校验此数据连接是否已存在
|
|
|
+ validExists(databases);
|
|
|
//校验此连接是否可用
|
|
|
implementSqlService.connectTest(databases);
|
|
|
+
|
|
|
String note = databases.getNote();
|
|
|
if (note == null || "".equals(note)){
|
|
|
note = "";
|
|
|
@@ -64,9 +67,21 @@ public class DataBasesService {
|
|
|
databasesInfo.setId(id);
|
|
|
//添加数据源可切换
|
|
|
addDataSource(databasesInfo);
|
|
|
+
|
|
|
return new RepEntity(RepCode.success,id);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 校验此数据连接是否已存在
|
|
|
+ * @param databases
|
|
|
+ */
|
|
|
+ private void validExists(Databases databases){
|
|
|
+ int count = dataConnectorMapper.countDataBases(databases);
|
|
|
+ if (count > 0) {
|
|
|
+ throw new MyException("已存在用户名为 " + databases.getUserName() + " 的数据连接!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/*
|
|
|
查看数据库配置列表
|
|
|
*/
|
|
|
@@ -206,12 +221,16 @@ public class DataBasesService {
|
|
|
}
|
|
|
if (!target.containsKey(String.valueOf(databasesInfo.getId()))) {
|
|
|
target.put(databasesInfo.getId(), dataSourceRegister.buildDataSource(dsMap));
|
|
|
+
|
|
|
DynamicDataSource datasource = (DynamicDataSource) ContextUtil.getBean("dataSource");
|
|
|
+
|
|
|
datasource.setTargetDataSources(target);
|
|
|
datasource.afterPropertiesSet();
|
|
|
|
|
|
Set<String> dataSourceIds = DynamicDataSourceContextHolder.getDataSourceIds();
|
|
|
+
|
|
|
dataSourceIds.add(String.valueOf(databasesInfo.getId()));
|
|
|
+
|
|
|
DynamicDataSourceContextHolder.setDataSourceIds(dataSourceIds);
|
|
|
}
|
|
|
}
|