|
@@ -3,10 +3,14 @@ package com.zkqy.datamodeling.service.impl;
|
|
|
import com.ruoyi.common.config.datamodeling.DynamicDataSource;
|
|
|
import com.ruoyi.common.core.domain.entity.DataSource;
|
|
|
import com.ruoyi.common.utils.datamodeling.DataSourceUtils;
|
|
|
+import com.zkqy.datamodeling.mapper.DataSourceMapper;
|
|
|
import com.zkqy.datamodeling.service.IDataSourceService;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
@Service
|
|
|
public class DataSourceServiceImpl implements IDataSourceService {
|
|
@@ -14,6 +18,9 @@ public class DataSourceServiceImpl implements IDataSourceService {
|
|
|
@Resource
|
|
|
private DynamicDataSource dynamicDataSource;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private DataSourceMapper dataSourceMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public void changeDataSource(DataSource dataSource) throws Exception {
|
|
|
|
|
@@ -21,8 +28,30 @@ public class DataSourceServiceImpl implements IDataSourceService {
|
|
|
DynamicDataSource.clearDataSource();
|
|
|
//切换数据源
|
|
|
dynamicDataSource.changeDataSource(DataSourceUtils.changeDataSource(dataSource));
|
|
|
-// redisTemplate.opsForValue().set("DataSource", JSON.toJSONString(dataSource));
|
|
|
+ // redisTemplate.opsForValue().set("DataSource", JSON.toJSONString(dataSource));
|
|
|
System.err.println("当前数据源:" + dataSource.toString());
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<String> querySelectDatasource(String type) {
|
|
|
+ List<String> retList = new ArrayList<>();
|
|
|
+ // 得到当前数据源中的所有库信息
|
|
|
+ switch (type) {
|
|
|
+ case "mysql":
|
|
|
+ retList = dataSourceMapper.querySelectDatasource("SHOW DATABASES;");
|
|
|
+ break;
|
|
|
+ case "sqlserver":
|
|
|
+ retList = dataSourceMapper.querySelectDatasource("select name from sys.databases;");
|
|
|
+ break;
|
|
|
+ case "dm":
|
|
|
+ retList = dataSourceMapper.querySelectDatasource("SELECT * FROM all_users;");
|
|
|
+ break;
|
|
|
+ case "oracle":
|
|
|
+ retList = dataSourceMapper.querySelectDatasource("SELECT DISTINCT object_name FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'SCH';");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ System.out.println(retList);
|
|
|
+ return retList;
|
|
|
+ }
|
|
|
+
|
|
|
}
|