mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-11 05:19:00 +08:00
♻️ 重构 SqlProviderFactory 优化支持 PG数据库
(cherry picked from commit 9341a4e184284cd13e76c1dee2896da4f600b3b9)
This commit is contained in:
1 parent
d2735da63e
commit
bc5c573099
1 file changed
+64
-66
+64
-66
@@ -1,7 +1,6 @@
|
||||
package com.pig4cloud.pigx.common.sequence.range.impl.db.provider;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.druid.pool.DruidDataSource;
|
||||
import com.baomidou.mybatisplus.annotation.DbType;
|
||||
import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
|
||||
import com.pig4cloud.pigx.common.sequence.properties.SequenceDbProperties;
|
||||
@@ -11,7 +10,6 @@ import org.springframework.core.env.Environment;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* sql语句提供工厂
|
||||
@@ -24,80 +22,80 @@ import java.util.Optional;
|
||||
@RequiredArgsConstructor
|
||||
public class SqlProviderFactory {
|
||||
|
||||
private final Optional<DruidDataSource> druidDataSourceOptional;
|
||||
private final SequenceDbProperties dbProperties;
|
||||
|
||||
private final SequenceDbProperties dbProperties;
|
||||
private final List<SqlProvider> sqlProviders;
|
||||
|
||||
private final List<SqlProvider> sqlProviders;
|
||||
private final Environment environment;
|
||||
|
||||
private final Environment environment;
|
||||
public SqlProvider getSqlProvider() {
|
||||
DbType dbType = null;
|
||||
|
||||
public SqlProvider getSqlProvider() {
|
||||
DbType dbType = null;
|
||||
if (druidDataSourceOptional.isPresent()) {
|
||||
String url = druidDataSourceOptional.get().getUrl();
|
||||
// druid 形式 进行降级获取
|
||||
if (StrUtil.isBlank(url)) {
|
||||
url = environment.getProperty("spring.datasource.druid.url");
|
||||
}
|
||||
String url = environment.getProperty("spring.datasource.druid.url");
|
||||
if (StrUtil.isNotBlank(url)) {
|
||||
dbType = JdbcUtils.getDbType(url);
|
||||
}
|
||||
|
||||
dbType = JdbcUtils.getDbType(url);
|
||||
}
|
||||
else {
|
||||
dbType = dbProperties.getDbType();
|
||||
}
|
||||
if (dbType == null) {
|
||||
dbType = dbProperties.getDbType();
|
||||
}
|
||||
|
||||
for (SqlProvider sqlProvider : sqlProviders) {
|
||||
if (sqlProvider.support(dbType)) {
|
||||
return sqlProvider;
|
||||
}
|
||||
}
|
||||
throw new UnsupportedOperationException("不支持的数据源");
|
||||
}
|
||||
for (SqlProvider sqlProvider : sqlProviders) {
|
||||
if (sqlProvider.support(dbType)) {
|
||||
return sqlProvider;
|
||||
}
|
||||
}
|
||||
throw new UnsupportedOperationException("不支持的数据源");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取插入范围语句
|
||||
* @return 插入范围语句
|
||||
*/
|
||||
public String getCreateTableSql() {
|
||||
SqlProvider sqlProvider = getSqlProvider();
|
||||
return sqlProvider.getCreateTableSql();
|
||||
}
|
||||
/**
|
||||
* 获取插入范围语句
|
||||
*
|
||||
* @return 插入范围语句
|
||||
*/
|
||||
public String getCreateTableSql() {
|
||||
SqlProvider sqlProvider = getSqlProvider();
|
||||
return sqlProvider.getCreateTableSql();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取插入范围语句
|
||||
* @return 插入范围语句
|
||||
*/
|
||||
public String getInsertRangeSql() {
|
||||
SqlProvider sqlProvider = getSqlProvider();
|
||||
return sqlProvider.getInsertRangeSql();
|
||||
}
|
||||
/**
|
||||
* 获取插入范围语句
|
||||
*
|
||||
* @return 插入范围语句
|
||||
*/
|
||||
public String getInsertRangeSql() {
|
||||
SqlProvider sqlProvider = getSqlProvider();
|
||||
return sqlProvider.getInsertRangeSql();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取查询范围语句
|
||||
* @return
|
||||
*/
|
||||
public String getSelectRangeSql() {
|
||||
SqlProvider sqlProvider = getSqlProvider();
|
||||
return sqlProvider.getSelectRangeSql();
|
||||
}
|
||||
/**
|
||||
* 获取查询范围语句
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getSelectRangeSql() {
|
||||
SqlProvider sqlProvider = getSqlProvider();
|
||||
return sqlProvider.getSelectRangeSql();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取更新范围语句
|
||||
* @return 更新范围语句
|
||||
*/
|
||||
public String getUpdateRangeSql() {
|
||||
SqlProvider sqlProvider = getSqlProvider();
|
||||
return sqlProvider.getUpdateRangeSql();
|
||||
}
|
||||
/**
|
||||
* 获取更新范围语句
|
||||
*
|
||||
* @return 更新范围语句
|
||||
*/
|
||||
public String getUpdateRangeSql() {
|
||||
SqlProvider sqlProvider = getSqlProvider();
|
||||
return sqlProvider.getUpdateRangeSql();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取是否创建表语句
|
||||
* @return SQL语句
|
||||
*/
|
||||
public String getExistTableSql() {
|
||||
SqlProvider sqlProvider = getSqlProvider();
|
||||
return sqlProvider.getExistTableSql();
|
||||
}
|
||||
/**
|
||||
* 获取是否创建表语句
|
||||
*
|
||||
* @return SQL语句
|
||||
*/
|
||||
public String getExistTableSql() {
|
||||
SqlProvider sqlProvider = getSqlProvider();
|
||||
return sqlProvider.getExistTableSql();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user