wiki不能保存问题修复,数据源创建优化

This commit is contained in:
暮光:城中城
2020-12-15 12:15:39 +08:00
parent 7285947cb3
commit d1918b14e2
8 changed files with 80 additions and 16 deletions

View File

@@ -58,7 +58,7 @@ public class DbDatasourceController {
dbDatasource.setSourcePassword(dbDatasourceSel.getSourcePassword());
}
}
DatabaseFactoryBean databaseFactoryBean = DatasourceUtil.createDatabaseFactoryBean(dbDatasource);
DatabaseFactoryBean databaseFactoryBean = DatasourceUtil.createDatabaseFactoryBean(dbDatasource, true);
if (databaseFactoryBean == null) {
return DocDbResponseJson.warn("获取数据源失败,请检查配置是否正确");
}

View File

@@ -11,12 +11,10 @@ import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import java.io.IOException;
public class DatasourceUtil {
private static SqlLogInterceptor sqlLogInterceptor = new SqlLogInterceptor();
public static DatabaseFactoryBean createDatabaseFactoryBean(DbDatasource dbDatasource) throws Exception {
public static DatabaseFactoryBean createDatabaseFactoryBean(DbDatasource dbDatasource, boolean breakAfterAcquireFailure) throws Exception {
Resource[] resources = null;
// 描述连接信息的对象
DatabaseFactoryBean databaseFactoryBean = new DatabaseFactoryBean();
@@ -62,7 +60,7 @@ public class DatasourceUtil {
return null;
}
// 数据源配置
DruidDataSource dataSource = DruidDataSourceUtil.createDataSource(dbDatasource.getDriverClassName(), dbDatasource.getSourceUrl(), dbDatasource.getSourceName(), dbDatasource.getSourcePassword());
DruidDataSource dataSource = DruidDataSourceUtil.createDataSource(dbDatasource.getDriverClassName(), dbDatasource.getSourceUrl(), dbDatasource.getSourceName(), dbDatasource.getSourcePassword(), breakAfterAcquireFailure);
// 创建sqlSessionTemplate
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);

View File

@@ -104,13 +104,15 @@ public class DatabaseRegistrationBean {
*/
private synchronized DatabaseFactoryBean createFactoryById(Long sourceId) {
DatabaseFactoryBean factoryBean = databaseFactoryBeanMap.get(sourceId);
if (factoryBean != null) return factoryBean;
if (factoryBean != null) {
return factoryBean;
}
DbDatasource dbDatasource = dbDatasourceService.getById(sourceId);
if (dbDatasource == null) {
throw new ConfirmException("未找到指定数据源配置信息");
}
try {
DatabaseFactoryBean databaseFactoryBean = DatasourceUtil.createDatabaseFactoryBean(dbDatasource);
DatabaseFactoryBean databaseFactoryBean = DatasourceUtil.createDatabaseFactoryBean(dbDatasource, false);
if (databaseFactoryBean == null) {
throw new ConfirmException("获取数据源失败");
}