From 130da074a0285339448904e09ee58c8d020e02fa Mon Sep 17 00:00:00 2001 From: lbw Date: Tue, 26 Sep 2023 10:08:24 +0800 Subject: [PATCH] =?UTF-8?q?:recycle:=20Refactoring=20code.=20=E9=80=82?= =?UTF-8?q?=E9=85=8D=E6=9C=80=E6=96=B0=E7=9A=84=20shardingsphere=20?= =?UTF-8?q?=E5=88=86=E5=BA=93=E5=88=86=E8=A1=A8=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../properties/SequenceDbProperties.java | 8 ++++++- .../impl/db/provider/SqlProviderFactory.java | 23 ++++++++++++++----- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/properties/SequenceDbProperties.java b/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/properties/SequenceDbProperties.java index 9c1fc3231..a9c3729c1 100644 --- a/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/properties/SequenceDbProperties.java +++ b/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/properties/SequenceDbProperties.java @@ -5,6 +5,7 @@ package com.pig4cloud.pigx.common.sequence.properties; * @date 2019-05-26 */ +import com.baomidou.mybatisplus.annotation.DbType; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @@ -20,6 +21,11 @@ import org.springframework.stereotype.Component; @ConfigurationProperties(prefix = "pigx.xsequence.db") public class SequenceDbProperties extends BaseSequenceProperties { + /** + * 默认数据库类型 + */ + private DbType dbType = DbType.MYSQL; + /** * 表名称 */ @@ -30,4 +36,4 @@ public class SequenceDbProperties extends BaseSequenceProperties { */ private int retryTimes = 1; -} \ No newline at end of file +} diff --git a/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/range/impl/db/provider/SqlProviderFactory.java b/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/range/impl/db/provider/SqlProviderFactory.java index 2353a7335..0ffd4d80f 100644 --- a/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/range/impl/db/provider/SqlProviderFactory.java +++ b/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/range/impl/db/provider/SqlProviderFactory.java @@ -4,12 +4,14 @@ 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; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Lazy; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; import java.util.List; +import java.util.Optional; /** * sql语句提供工厂 @@ -22,20 +24,29 @@ import java.util.List; @RequiredArgsConstructor public class SqlProviderFactory { - private final DruidDataSource druidDataSource; + private final Optional druidDataSourceOptional; + + private final SequenceDbProperties dbProperties; private final List sqlProviders; private final Environment environment; public SqlProvider getSqlProvider() { - String url = druidDataSource.getUrl(); - // druid 形式 进行降级获取 - if (StrUtil.isBlank(url)) { - url = environment.getProperty("spring.datasource.druid.url"); + DbType dbType = null; + if (druidDataSourceOptional.isPresent()) { + String url = druidDataSourceOptional.get().getUrl(); + // druid 形式 进行降级获取 + if (StrUtil.isBlank(url)) { + url = environment.getProperty("spring.datasource.druid.url"); + } + + JdbcUtils.getDbType(url); + } + else { + dbType = dbProperties.getDbType(); } - DbType dbType = JdbcUtils.getDbType(url); for (SqlProvider sqlProvider : sqlProviders) { if (sqlProvider.support(dbType)) { return sqlProvider;