提交 17dcc579 authored 作者: taojinlong's avatar taojinlong

feat: 示例数据

上级 f88d0f5e
...@@ -32,5 +32,5 @@ public abstract class DatasourceProvider { ...@@ -32,5 +32,5 @@ public abstract class DatasourceProvider {
abstract public Map<String, List> fetchResultAndField(DatasourceRequest datasourceRequest) throws Exception; abstract public Map<String, List> fetchResultAndField(DatasourceRequest datasourceRequest) throws Exception;
abstract public void initDataSource(DatasourceRequest datasourceRequest) throws Exception; abstract public void initDataSource(DatasourceRequest datasourceRequest, String type) throws Exception;
} }
...@@ -271,7 +271,7 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -271,7 +271,7 @@ public class JdbcProvider extends DatasourceProvider {
private Connection getConnectionFromPool(DatasourceRequest datasourceRequest) throws Exception { private Connection getConnectionFromPool(DatasourceRequest datasourceRequest) throws Exception {
ComboPooledDataSource dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId()); ComboPooledDataSource dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId());
if (dataSource == null) { if (dataSource == null) {
initDataSource(datasourceRequest); initDataSource(datasourceRequest, "add");
} }
dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId()); dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId());
Connection co = dataSource.getConnection(); Connection co = dataSource.getConnection();
...@@ -279,9 +279,28 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -279,9 +279,28 @@ public class JdbcProvider extends DatasourceProvider {
} }
@Override @Override
public void initDataSource(DatasourceRequest datasourceRequest) throws Exception { public void initDataSource(DatasourceRequest datasourceRequest, String type) throws Exception {
switch (type){
case "add":
ComboPooledDataSource dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId()); ComboPooledDataSource dataSource = jdbcConnection.get(datasourceRequest.getDatasource().getId());
if (dataSource == null) { if (dataSource == null) {
extracted(datasourceRequest);
}
break;
case "edit":
jdbcConnection.remove(datasourceRequest.getDatasource().getId());
extracted(datasourceRequest);
break;
case "delete":
jdbcConnection.remove(datasourceRequest.getDatasource().getId());
break;
default:
break;
}
}
private void extracted(DatasourceRequest datasourceRequest) throws PropertyVetoException {
ComboPooledDataSource dataSource;
dataSource = new ComboPooledDataSource(); dataSource = new ComboPooledDataSource();
setCredential(datasourceRequest, dataSource); setCredential(datasourceRequest, dataSource);
dataSource.setMaxIdleTime(30); // 最大空闲时间 dataSource.setMaxIdleTime(30); // 最大空闲时间
...@@ -301,7 +320,6 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -301,7 +320,6 @@ public class JdbcProvider extends DatasourceProvider {
dataSource.setUnreturnedConnectionTimeout(3600); dataSource.setUnreturnedConnectionTimeout(3600);
jdbcConnection.put(datasourceRequest.getDatasource().getId(), dataSource); jdbcConnection.put(datasourceRequest.getDatasource().getId(), dataSource);
} }
}
private static Connection getConnection(DatasourceRequest datasourceRequest) throws Exception { private static Connection getConnection(DatasourceRequest datasourceRequest) throws Exception {
String username = null; String username = null;
......
...@@ -55,9 +55,24 @@ public class DatasourceService { ...@@ -55,9 +55,24 @@ public class DatasourceService {
datasource.setCreateTime(currentTimeMillis); datasource.setCreateTime(currentTimeMillis);
datasource.setCreateBy(String.valueOf(AuthUtils.getUser().getUsername())); datasource.setCreateBy(String.valueOf(AuthUtils.getUser().getUsername()));
datasourceMapper.insertSelective(datasource); datasourceMapper.insertSelective(datasource);
initConnectionPool(datasource, "add");
return datasource; return datasource;
} }
private void initConnectionPool(Datasource datasource, String type) {
commonThreadPool.addTask(() -> {
try {
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType());
DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(datasource);
datasourceProvider.initDataSource(datasourceRequest, type);
LogUtil.info("Succsss to init datasource connection pool: " + datasource.getName());
} catch (Exception e) {
LogUtil.error("Failed to init datasource connection pool: " + datasource.getName(), e);
}
});
}
public List<DatasourceDTO> getDatasourceList(DatasourceUnionRequest request) throws Exception { public List<DatasourceDTO> getDatasourceList(DatasourceUnionRequest request) throws Exception {
request.setSort("update_time desc"); request.setSort("update_time desc");
return extDataSourceMapper.queryUnion(request); return extDataSourceMapper.queryUnion(request);
...@@ -92,6 +107,7 @@ public class DatasourceService { ...@@ -92,6 +107,7 @@ public class DatasourceService {
datasource.setCreateTime(null); datasource.setCreateTime(null);
datasource.setUpdateTime(System.currentTimeMillis()); datasource.setUpdateTime(System.currentTimeMillis());
datasourceMapper.updateByPrimaryKeySelective(datasource); datasourceMapper.updateByPrimaryKeySelective(datasource);
initConnectionPool(datasource, "edit");
} }
public void validate(Datasource datasource) throws Exception { public void validate(Datasource datasource) throws Exception {
...@@ -148,17 +164,7 @@ public class DatasourceService { ...@@ -148,17 +164,7 @@ public class DatasourceService {
List<Datasource> datasources = datasourceMapper.selectByExampleWithBLOBs(new DatasourceExample()); List<Datasource> datasources = datasourceMapper.selectByExampleWithBLOBs(new DatasourceExample());
datasources.forEach(datasource -> { datasources.forEach(datasource -> {
try { try {
commonThreadPool.addTask(() -> { initConnectionPool(datasource, "add");
try {
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType());
DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(datasource);
datasourceProvider.initDataSource(datasourceRequest);
LogUtil.info("Succsss to init datasource connection pool: " + datasource.getName());
} catch (Exception e) {
LogUtil.error("Failed to init datasource connection pool: " + datasource.getName(), e);
}
});
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论