From 6376962edd8d8a8ccffb2224f02f3fac88f9f53d Mon Sep 17 00:00:00 2001 From: coderjn Date: Fri, 20 Sep 2024 20:10:52 +0800 Subject: [PATCH 01/15] =?UTF-8?q?*=20=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nacosplugin-datasource/installation.MD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nacosplugin-datasource/installation.MD b/nacosplugin-datasource/installation.MD index 0fa4ba3..5788847 100644 --- a/nacosplugin-datasource/installation.MD +++ b/nacosplugin-datasource/installation.MD @@ -95,7 +95,7 @@ db.pool.config.driverClassName=com.kingbase8.Driver ```properties spring.sql.init.platform=magicdata db.num=1 -db.url.0=jdbc:magicdata://localhost:3660/theDb?currentSchema=nacos&clientEncoding=utf8 +db.url.0=jdbc:besmagicdata://localhost:3660/theDb?currentSchema=nacos&clientEncoding=utf8 db.user.0=username db.password.0=thePassword db.pool.config.driverClassName=com.bes.magicdata.Driver -- Gitee From 2bddaf46ed0ab754c05641eb2e69887d0256e889 Mon Sep 17 00:00:00 2001 From: fjn1194361820 Date: Tue, 24 Sep 2024 16:00:10 +0800 Subject: [PATCH 02/15] =?UTF-8?q?*=20=E6=9B=B4=E6=96=B0=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 23c5dde..f400a28 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,8 @@ | 插件版本 | 构建时使用的nacos版本 | 支持的Nacos版本 | 测试过的nacos版本 | |:-------------:|:------------------:|:------------:|-------------------------------------------------| -| `1.0.x` | `2.4.1` | 理论上`>=2.2.0` | `2.3.2`
`2.4.1` | -| `2.0.0` ~ `2.0.7` | `2.4.1` | 理论上`>=2.2.0` | `2.3.2`
`2.4.1` | +| `1.0.x` | `2.4.1` | 理论上`>=2.2.0` | `2.3.2`
`2.4.1`
`2.4.2` | +| `2.0.0` ~ `2.0.7` | `2.4.1` | 理论上`>=2.2.0` | `2.3.2`
`2.4.1`
`2.4.2` | 支持的nacos 版本,从2.2.0开始原因:nacos 2.2.0才支持这一套插件系统,在此之前需要直接修改nacos的源码。 -- Gitee From d0b40b03c4325de5d0c4ee8a30c8aad59e40b4d1 Mon Sep 17 00:00:00 2001 From: fjn1194361820 Date: Tue, 24 Sep 2024 16:06:14 +0800 Subject: [PATCH 03/15] =?UTF-8?q?*=20=E6=9B=B4=E6=96=B0readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f400a28..31abbaf 100644 --- a/README.md +++ b/README.md @@ -16,10 +16,10 @@ #### 版本映射 -| 插件版本 | 构建时使用的nacos版本 | 支持的Nacos版本 | 测试过的nacos版本 | +| 插件版本 | 构建时使用的nacos版本 | 支持的Nacos版本 | 测试过的nacos版本 | |:-------------:|:------------------:|:------------:|-------------------------------------------------| | `1.0.x` | `2.4.1` | 理论上`>=2.2.0` | `2.3.2`
`2.4.1`
`2.4.2` | -| `2.0.0` ~ `2.0.7` | `2.4.1` | 理论上`>=2.2.0` | `2.3.2`
`2.4.1`
`2.4.2` | +| `2.0.0` ~ `2.0.8` | `2.4.1` | 理论上`>=2.2.0` | `2.3.2`
`2.4.1`
`2.4.2` | 支持的nacos 版本,从2.2.0开始原因:nacos 2.2.0才支持这一套插件系统,在此之前需要直接修改nacos的源码。 -- Gitee From 51af77432c4196558ef5d2682ffc69baedf67fc8 Mon Sep 17 00:00:00 2001 From: fjn1194361820 Date: Wed, 25 Sep 2024 14:29:36 +0800 Subject: [PATCH 04/15] =?UTF-8?q?*=20=E7=A1=AE=E4=BF=9D=E6=89=80=E6=9C=89?= =?UTF-8?q?=E8=B0=83=E7=94=A8=20getCastNullToDefaultExpression=20=E6=97=B6?= =?UTF-8?q?=E5=BF=85=E9=A1=BB=E5=85=88=E8=B0=83=E7=94=A8=20isAutoCastEmpty?= =?UTF-8?q?StringToNull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/datasource/db/gauss/OpenGaussDatabaseDialect.java | 3 ++- .../datasource/db/postgresql/PostgresDatabaseDialect.java | 5 +++++ .../com/jn/nacos/plugin/datasource/mapper/BaseMapper.java | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/gauss/OpenGaussDatabaseDialect.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/gauss/OpenGaussDatabaseDialect.java index 75db79e..570c5ba 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/gauss/OpenGaussDatabaseDialect.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/gauss/OpenGaussDatabaseDialect.java @@ -12,7 +12,8 @@ public class OpenGaussDatabaseDialect extends NacosDatabaseDialect { @Override public boolean isAutoCastEmptyStringToNull() { - return true; + // 基于 opengauss 5.0.3 测试 + return false; } @Override diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/postgresql/PostgresDatabaseDialect.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/postgresql/PostgresDatabaseDialect.java index ae51a90..f074faa 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/postgresql/PostgresDatabaseDialect.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/postgresql/PostgresDatabaseDialect.java @@ -15,4 +15,9 @@ public class PostgresDatabaseDialect extends NacosDatabaseDialect { // 此测试结果基于 postgresql 15 return false; } + + @Override + public String genCastNullToDefaultExpression(String expressionOrIdentifier, String defaultValue) { + return " COALESCE("+expressionOrIdentifier+", '"+defaultValue+"') "; + } } diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/mapper/BaseMapper.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/mapper/BaseMapper.java index faae0a4..c52f210 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/mapper/BaseMapper.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/mapper/BaseMapper.java @@ -115,7 +115,7 @@ public abstract class BaseMapper extends AbstractMapper { if (parts.length == 2) { sql.append(getFunction(parts[1])); } else { - if(i==tenantIdColumnIndex){ + if(i==tenantIdColumnIndex && getDialect().isAutoCastEmptyStringToNull()){ sql.append(getDialect().genCastNullToDefaultExpression("?", getDefaultTenantId())); }else { sql.append("?"); -- Gitee From a535a4c25538bfd895755077c5d9c923c78eed82 Mon Sep 17 00:00:00 2001 From: fjn1194361820 Date: Wed, 25 Sep 2024 14:31:57 +0800 Subject: [PATCH 05/15] =?UTF-8?q?*=20=E5=87=86=E5=A4=872.0.9=E8=BF=AD?= =?UTF-8?q?=E4=BB=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nacosplugin-all/pom.xml | 2 +- nacosplugin-datasource-sqlscript/pom.xml | 2 +- nacosplugin-datasource/pom.xml | 2 +- pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nacosplugin-all/pom.xml b/nacosplugin-all/pom.xml index 91739f8..18e4d28 100644 --- a/nacosplugin-all/pom.xml +++ b/nacosplugin-all/pom.xml @@ -6,7 +6,7 @@ io.github.bes2008.solution.nacosplugins nacos-plugins - 2.0.8 + 2.0.9 nacosplugin-all diff --git a/nacosplugin-datasource-sqlscript/pom.xml b/nacosplugin-datasource-sqlscript/pom.xml index adbea2d..693a6fd 100644 --- a/nacosplugin-datasource-sqlscript/pom.xml +++ b/nacosplugin-datasource-sqlscript/pom.xml @@ -6,7 +6,7 @@ io.github.bes2008.solution.nacosplugins nacos-plugins - 2.0.8 + 2.0.9 nacosplugin-datasource-sqlscript diff --git a/nacosplugin-datasource/pom.xml b/nacosplugin-datasource/pom.xml index ac72aa9..0afa537 100644 --- a/nacosplugin-datasource/pom.xml +++ b/nacosplugin-datasource/pom.xml @@ -6,7 +6,7 @@ io.github.bes2008.solution.nacosplugins nacos-plugins - 2.0.8 + 2.0.9 nacosplugin-datasource diff --git a/pom.xml b/pom.xml index 26383c7..7c9d789 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.github.bes2008.solution.nacosplugins nacos-plugins - 2.0.8 + 2.0.9 pom ${project.groupId}:${project.artifactId}:${project.version} -- Gitee From 3ab1fe57c02654c29d748ead10869d1f1e68de71 Mon Sep 17 00:00:00 2001 From: fjn1194361820 Date: Wed, 25 Sep 2024 17:11:47 +0800 Subject: [PATCH 06/15] =?UTF-8?q?*=20=E6=8F=90=E4=BE=9B=E5=AF=B9=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E5=85=BC=E5=AE=B9=E6=A8=A1=E5=BC=8F=E7=9A=84?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datasource/NacosDatabaseDialect.java | 7 ++++++- .../jn/nacos/plugin/datasource/NacosEnvs.java | 21 ++++++++++++++++--- .../plugin/datasource/PluginContext.java | 12 +++++++++-- .../db/gauss/OpenGaussDatabaseDialect.java | 3 ++- .../db/magicdata/MagicDatabaseDialect.java | 3 ++- .../db/oracle/OracleDatabaseDialect.java | 3 ++- .../postgresql/PostgresDatabaseDialect.java | 3 ++- .../plugin/datasource/mapper/BaseMapper.java | 12 ++++++++--- pom.xml | 2 +- 9 files changed, 52 insertions(+), 14 deletions(-) diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosDatabaseDialect.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosDatabaseDialect.java index 2be15da..3be3c47 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosDatabaseDialect.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosDatabaseDialect.java @@ -9,6 +9,7 @@ import com.jn.langx.util.collection.Maps; import com.jn.langx.util.reflect.Reflects; import com.jn.sqlhelper.dialect.Dialect; import com.jn.sqlhelper.dialect.DialectRegistry; +import com.jn.sqlhelper.dialect.SqlCompatibilityType; import com.jn.sqlhelper.dialect.pagination.RowSelection; import java.util.List; @@ -128,7 +129,7 @@ public abstract class NacosDatabaseDialect { return this.delegate.getUnquoteIdentifier(identifier); } - public boolean isAutoCastEmptyStringToNull(){ + public boolean isAutoCastEmptyStringToNull(SqlCompatibilityType sqlCompatibilityType){ return false; } @@ -142,4 +143,8 @@ public abstract class NacosDatabaseDialect { public String getName() { return name; } + + public SqlCompatibilityType getDefaultCompatibilityType(){ + return delegate.getDefaultSqlCompatibilityType(); + } } diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosEnvs.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosEnvs.java index 2084b05..c4e0f81 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosEnvs.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosEnvs.java @@ -9,6 +9,7 @@ import com.jn.langx.util.logging.Loggers; import com.jn.langx.util.reflect.Reflects; import com.jn.sqlhelper.dialect.Dialect; import com.jn.sqlhelper.dialect.DialectRegistry; +import com.jn.sqlhelper.dialect.SqlCompatibilityType; import org.slf4j.Logger; public class NacosEnvs { @@ -29,6 +30,8 @@ public class NacosEnvs { */ private static final String CONFIG_KEY_DB_DDL_IDENTIFIER_QUOTED_MODE="db.sql.identifier.quoted.mode"; + private static final String CONFIG_KEY_DB_COMPATIBILITY="db.sql.compatibility.type"; + public static int versionCompare(String comparedVersion) { String currentVersion = toNacosStandardVersion(VersionUtils.version); String version2 = toNacosStandardVersion(comparedVersion); @@ -41,8 +44,6 @@ public class NacosEnvs { return nacosVersion; } - - public static boolean hasEncryptedDataKeyColumn() { return versionCompare("2.1.0") >= 0; } @@ -50,7 +51,7 @@ public class NacosEnvs { /** * 当使用的 create-schema.sql, create-tables.sql 不是插件提供的,需要指定该配置。 */ - public static IdentifierQuotedMode getConfiguredIdentifierQuotedMode(NacosDatabaseDialect dialect) { + public static IdentifierQuotedMode getIdentifierQuotedMode(NacosDatabaseDialect dialect) { String modeString = EnvUtil.getProperty(CONFIG_KEY_DB_DDL_IDENTIFIER_QUOTED_MODE); IdentifierQuotedMode mode = null; if (Strings.isNotBlank(modeString)) { @@ -65,6 +66,20 @@ public class NacosEnvs { return mode; } + public static SqlCompatibilityType getSqlCompatibilityType(NacosDatabaseDialect dialect){ + String modeString = EnvUtil.getProperty(CONFIG_KEY_DB_COMPATIBILITY); + + SqlCompatibilityType compatibilityType= null; + if(!Strings.isBlank(modeString)){ + compatibilityType = Enums.ofName(SqlCompatibilityType.class, modeString); + } + + if(compatibilityType==null){ + compatibilityType = dialect.getDefaultCompatibilityType(); + } + return compatibilityType; + } + public static String getConfiguredDatabaseName() { String databaseName = EnvUtil.getProperty(CONFIG_KEY_DATASOURCE_PLATFORM); if (Strings.isBlank(databaseName)) { diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/PluginContext.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/PluginContext.java index eb25ceb..1be0f68 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/PluginContext.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/PluginContext.java @@ -5,12 +5,15 @@ import com.jn.langx.lifecycle.InitializationException; import com.jn.langx.util.Objs; import com.jn.langx.util.Preconditions; import com.jn.langx.util.logging.Loggers; +import com.jn.sqlhelper.dialect.SqlCompatibilityType; import org.slf4j.Logger; public class PluginContext extends AbstractInitializable { private String databaseName; protected NacosDatabaseDialect dialect; private IdentifierQuotedMode identifierQuotedModeInDDL; + private SqlCompatibilityType sqlCompatibilityType; + private PluginContext(){ init(); } @@ -22,8 +25,9 @@ public class PluginContext extends AbstractInitializable { this.databaseName = NacosEnvs.getConfiguredDatabaseName(); Preconditions.checkTrue(!Objs.equals(DatabaseNames.UNSUPPORTED, this.databaseName), "database {} is unsupported", this.databaseName); this.dialect = NacosDatabaseDialectManager.getInstance().getDialect(this.databaseName); - this.identifierQuotedModeInDDL = NacosEnvs.getConfiguredIdentifierQuotedMode(this.dialect); - logger.info("dialect: {}, identifierQuotedMode: {}", this.databaseName, this.identifierQuotedModeInDDL); + this.identifierQuotedModeInDDL = NacosEnvs.getIdentifierQuotedMode(this.dialect); + this.sqlCompatibilityType = NacosEnvs.getSqlCompatibilityType(this.dialect); + logger.info("dialect: {}, identifierQuotedMode: {}, sqlCompatibilityType: {}", this.databaseName, this.identifierQuotedModeInDDL, this.sqlCompatibilityType); logger.info("================== nacos datasource plugin context initial finished =================="); } @@ -40,5 +44,9 @@ public class PluginContext extends AbstractInitializable { public NacosDatabaseDialect getDialect() { return dialect; } + + public SqlCompatibilityType getSqlCompatibilityType() { + return sqlCompatibilityType; + } } diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/gauss/OpenGaussDatabaseDialect.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/gauss/OpenGaussDatabaseDialect.java index 570c5ba..18f29d8 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/gauss/OpenGaussDatabaseDialect.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/gauss/OpenGaussDatabaseDialect.java @@ -3,6 +3,7 @@ package com.jn.nacos.plugin.datasource.db.gauss; import com.jn.nacos.plugin.datasource.DatabaseNames; import com.jn.nacos.plugin.datasource.IdentifierQuotedMode; import com.jn.nacos.plugin.datasource.NacosDatabaseDialect; +import com.jn.sqlhelper.dialect.SqlCompatibilityType; public class OpenGaussDatabaseDialect extends NacosDatabaseDialect { public OpenGaussDatabaseDialect() { @@ -11,7 +12,7 @@ public class OpenGaussDatabaseDialect extends NacosDatabaseDialect { } @Override - public boolean isAutoCastEmptyStringToNull() { + public boolean isAutoCastEmptyStringToNull(SqlCompatibilityType sqlCompatibilityType) { // 基于 opengauss 5.0.3 测试 return false; } diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/magicdata/MagicDatabaseDialect.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/magicdata/MagicDatabaseDialect.java index f2b27cb..53d0f14 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/magicdata/MagicDatabaseDialect.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/magicdata/MagicDatabaseDialect.java @@ -3,6 +3,7 @@ package com.jn.nacos.plugin.datasource.db.magicdata; import com.jn.nacos.plugin.datasource.DatabaseNames; import com.jn.nacos.plugin.datasource.IdentifierQuotedMode; import com.jn.nacos.plugin.datasource.NacosDatabaseDialect; +import com.jn.sqlhelper.dialect.SqlCompatibilityType; public class MagicDatabaseDialect extends NacosDatabaseDialect { public MagicDatabaseDialect() { @@ -11,7 +12,7 @@ public class MagicDatabaseDialect extends NacosDatabaseDialect { } @Override - public boolean isAutoCastEmptyStringToNull() { + public boolean isAutoCastEmptyStringToNull(SqlCompatibilityType sqlCompatibilityType) { return true; } diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/oracle/OracleDatabaseDialect.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/oracle/OracleDatabaseDialect.java index 4a517dc..63bc73b 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/oracle/OracleDatabaseDialect.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/oracle/OracleDatabaseDialect.java @@ -2,6 +2,7 @@ package com.jn.nacos.plugin.datasource.db.oracle; import com.jn.nacos.plugin.datasource.DatabaseNames; import com.jn.nacos.plugin.datasource.NacosDatabaseDialect; +import com.jn.sqlhelper.dialect.SqlCompatibilityType; public class OracleDatabaseDialect extends NacosDatabaseDialect { public OracleDatabaseDialect(){ @@ -9,7 +10,7 @@ public class OracleDatabaseDialect extends NacosDatabaseDialect { } @Override - public boolean isAutoCastEmptyStringToNull() { + public boolean isAutoCastEmptyStringToNull(SqlCompatibilityType sqlCompatibilityType) { return true; } diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/postgresql/PostgresDatabaseDialect.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/postgresql/PostgresDatabaseDialect.java index f074faa..46e8a6f 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/postgresql/PostgresDatabaseDialect.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/postgresql/PostgresDatabaseDialect.java @@ -3,6 +3,7 @@ package com.jn.nacos.plugin.datasource.db.postgresql; import com.jn.nacos.plugin.datasource.DatabaseNames; import com.jn.nacos.plugin.datasource.IdentifierQuotedMode; import com.jn.nacos.plugin.datasource.NacosDatabaseDialect; +import com.jn.sqlhelper.dialect.SqlCompatibilityType; public class PostgresDatabaseDialect extends NacosDatabaseDialect { public PostgresDatabaseDialect() { @@ -11,7 +12,7 @@ public class PostgresDatabaseDialect extends NacosDatabaseDialect { } @Override - public boolean isAutoCastEmptyStringToNull() { + public boolean isAutoCastEmptyStringToNull(SqlCompatibilityType sqlCompatibilityType) { // 此测试结果基于 postgresql 15 return false; } diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/mapper/BaseMapper.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/mapper/BaseMapper.java index c52f210..ee73c46 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/mapper/BaseMapper.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/mapper/BaseMapper.java @@ -9,6 +9,8 @@ import com.jn.langx.util.Strings; import com.jn.langx.util.collection.Pipeline; import com.jn.nacos.plugin.datasource.*; import com.jn.sqlhelper.dialect.Dialect; +import com.jn.sqlhelper.dialect.SqlCompatibilityType; + import java.util.List; public abstract class BaseMapper extends AbstractMapper { @@ -24,6 +26,10 @@ public abstract class BaseMapper extends AbstractMapper { return PluginContext.INSTANCE.getDialect(); } + public final SqlCompatibilityType getSqlCompatibilityType(){ + return PluginContext.INSTANCE.getSqlCompatibilityType(); + } + public String getIdentifierInDb(String identifier){ String string; switch (PluginContext.INSTANCE.getIdentifierQuotedModeInDDL()){ @@ -115,7 +121,7 @@ public abstract class BaseMapper extends AbstractMapper { if (parts.length == 2) { sql.append(getFunction(parts[1])); } else { - if(i==tenantIdColumnIndex && getDialect().isAutoCastEmptyStringToNull()){ + if(i==tenantIdColumnIndex && getDialect().isAutoCastEmptyStringToNull(getSqlCompatibilityType())){ sql.append(getDialect().genCastNullToDefaultExpression("?", getDefaultTenantId())); }else { sql.append("?"); @@ -198,7 +204,7 @@ public abstract class BaseMapper extends AbstractMapper { for (int i = 0; i < where.size(); i++) { String condition = getDialect().unwrapQuote(where.get(i)); - if(Strings.equalsIgnoreCase(condition, "tenant_id") && getDialect().isAutoCastEmptyStringToNull()){ + if(Strings.equalsIgnoreCase(condition, "tenant_id") && getDialect().isAutoCastEmptyStringToNull(getSqlCompatibilityType())){ String castNullToDefaultExpression = getDialect().genCastNullToDefaultExpression("?", getDefaultTenantId()); sql.append(getIdentifierInDb(condition)).append(" = ").append(castNullToDefaultExpression); }else{ @@ -214,7 +220,7 @@ public abstract class BaseMapper extends AbstractMapper { private static final String NAMESPACE_PUBLIC_KEY = "public"; protected final String getDefaultTenantId(){ - if(getDialect().isAutoCastEmptyStringToNull()){ + if(getDialect().isAutoCastEmptyStringToNull(getSqlCompatibilityType())){ return NAMESPACE_PUBLIC_KEY; } return NamespaceUtil.getNamespaceDefaultId(); diff --git a/pom.xml b/pom.xml index 7c9d789..bf7fdb2 100644 --- a/pom.xml +++ b/pom.xml @@ -29,7 +29,7 @@ 1.17.0 2.4.2 5.3.39 - 5.0.7 + 5.0.9 https://gitee.com/coderjn/nacos-plugins -- Gitee From 9c11afb14b48054fcaf8e3e921c1b49d902c1d3b Mon Sep 17 00:00:00 2001 From: fjn1194361820 Date: Wed, 25 Sep 2024 17:24:48 +0800 Subject: [PATCH 07/15] =?UTF-8?q?*=20=E6=8C=87=E5=AE=9A=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jn/nacos/plugin/datasource/NacosDatabaseDialect.java | 6 +++++- .../java/com/jn/nacos/plugin/datasource/NacosEnvs.java | 9 ++++++++- .../datasource/db/gauss/OpenGaussDatabaseDialect.java | 9 ++++----- .../datasource/db/magicdata/MagicDatabaseDialect.java | 5 +++++ 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosDatabaseDialect.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosDatabaseDialect.java index 3be3c47..787a4a2 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosDatabaseDialect.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosDatabaseDialect.java @@ -21,6 +21,10 @@ public abstract class NacosDatabaseDialect { private Dialect delegate; private Map functionMap; + public Dialect getDelegate() { + return delegate; + } + /** * 插件中提供在 schema DDL 文件中, identifier 的默认模式 */ @@ -130,7 +134,7 @@ public abstract class NacosDatabaseDialect { } public boolean isAutoCastEmptyStringToNull(SqlCompatibilityType sqlCompatibilityType){ - return false; + return sqlCompatibilityType == SqlCompatibilityType.ORACLE; } /** diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosEnvs.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosEnvs.java index c4e0f81..7b07b04 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosEnvs.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/NacosEnvs.java @@ -74,7 +74,14 @@ public class NacosEnvs { compatibilityType = Enums.ofName(SqlCompatibilityType.class, modeString); } - if(compatibilityType==null){ + if(compatibilityType!=null){ + if(!dialect.getDelegate().isSupportedCompatibilityType(compatibilityType)){ + Loggers.getLogger(NacosEnvs.class).warn("unsupported db compatibilityType: {}", compatibilityType); + compatibilityType = null; + } + } + + if(compatibilityType == null){ compatibilityType = dialect.getDefaultCompatibilityType(); } return compatibilityType; diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/gauss/OpenGaussDatabaseDialect.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/gauss/OpenGaussDatabaseDialect.java index 18f29d8..a8a9349 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/gauss/OpenGaussDatabaseDialect.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/gauss/OpenGaussDatabaseDialect.java @@ -12,13 +12,12 @@ public class OpenGaussDatabaseDialect extends NacosDatabaseDialect { } @Override - public boolean isAutoCastEmptyStringToNull(SqlCompatibilityType sqlCompatibilityType) { - // 基于 opengauss 5.0.3 测试 - return false; + public String genCastNullToDefaultExpression(String expressionOrIdentifier, String defaultValue) { + return " COALESCE("+expressionOrIdentifier+", '"+defaultValue+"') "; } @Override - public String genCastNullToDefaultExpression(String expressionOrIdentifier, String defaultValue) { - return " COALESCE("+expressionOrIdentifier+", '"+defaultValue+"') "; + public SqlCompatibilityType getDefaultCompatibilityType() { + return SqlCompatibilityType.ORACLE; } } diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/magicdata/MagicDatabaseDialect.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/magicdata/MagicDatabaseDialect.java index 53d0f14..406e6da 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/magicdata/MagicDatabaseDialect.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/magicdata/MagicDatabaseDialect.java @@ -20,4 +20,9 @@ public class MagicDatabaseDialect extends NacosDatabaseDialect { public String genCastNullToDefaultExpression(String expressionOrIdentifier, String defaultValue) { return " COALESCE("+expressionOrIdentifier+", '"+defaultValue+"') "; } + + @Override + public SqlCompatibilityType getDefaultCompatibilityType() { + return SqlCompatibilityType.ORACLE; + } } -- Gitee From b7a4f8e828fdb673b461d7e25cb731fd0e5d020b Mon Sep 17 00:00:00 2001 From: fjn1194361820 Date: Wed, 25 Sep 2024 17:39:35 +0800 Subject: [PATCH 08/15] =?UTF-8?q?*=20=E6=8C=87=E5=AE=9A=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/datasource/db/postgresql/PostgresDatabaseDialect.java | 1 - 1 file changed, 1 deletion(-) diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/postgresql/PostgresDatabaseDialect.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/postgresql/PostgresDatabaseDialect.java index 46e8a6f..fe3cf4d 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/postgresql/PostgresDatabaseDialect.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/db/postgresql/PostgresDatabaseDialect.java @@ -13,7 +13,6 @@ public class PostgresDatabaseDialect extends NacosDatabaseDialect { @Override public boolean isAutoCastEmptyStringToNull(SqlCompatibilityType sqlCompatibilityType) { - // 此测试结果基于 postgresql 15 return false; } -- Gitee From 34fdd51866a7af23ea8b69fbf5c5cdc05e1a82a5 Mon Sep 17 00:00:00 2001 From: fjn1194361820 Date: Wed, 25 Sep 2024 18:04:15 +0800 Subject: [PATCH 09/15] =?UTF-8?q?*=20=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nacosplugin-datasource/installation.MD | 33 +++++++++++++++++++------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/nacosplugin-datasource/installation.MD b/nacosplugin-datasource/installation.MD index 5788847..5bba366 100644 --- a/nacosplugin-datasource/installation.MD +++ b/nacosplugin-datasource/installation.MD @@ -27,7 +27,24 @@ db.pool.config.driverClassName=org.postgresql.Driver --- -## 支持PostgreSQL +## 自定义配置 +为了更好的适配各种数据为库,插件提供了如下自定义配置: + ++ `spring.sql.plugin.builtin.enabled`: 是否启用内置的datasource插件,只针对于 `derby, mysql`数据库,默认值为 `true`。nacos介质中默认提供了 `derby, mysql` 的mapper。如果你不想使用默认的mapper或者nacos提供的 mapper 有bug时,可以将该配置设置为 `false`。 ++ `db.sql.identifier.quoted.mode`: 指定创建数据库表的DDL语句中,使用的表名、字段名是否使用了引号。每个数据库的情况并不统一,本插件会根据 `nacosplugin-datasource-sqlscript`模拟中提供的ddl脚本,指定默认值,当没有使用`nacosplugin-datasource-sqlscript`提供的ddl脚本时,可能需要配置。可选值有3个: + + `QUOTED`:代表了所有的表名、字段都使用了引号。 + + `UNQUOTED`:代表了所有的表名、字段都没有使用引号。 + + `MIXED`:代表了表名、字段名,有的使用了引号,有的没有使用引号。 ++ `db.sql.compatibility.type`:指定数据库所采用的兼容模式,目前主要解决兼容`ORACLE`模式时,会自动将 `''` 设定为 `NULL`的情况。从功能上来看,主要解决的是Oracle兼容模式下,在nacos的`public`租户下创建配置,查询不到的情况。如果不会在nacos的`public`租户下创建配置时,可以不关注该配置。可选值有: + + `oracle`:当创建数据库时,指定兼容了Oracle模式时。 + + `postgresql`: 当创建数据库时,指定兼容了postgresql (简称PG) 模式时。 + + `mysql`: 当创建数据库时,指定兼容了 mysql 模式时。 + + `sqlserver`: 当创建数据库时,指定兼容了 sqlserver 模式时。 + + `teradata`: 当创建数据库时,指定兼容了 teradata 模式时。 + +## 数据库支持 + +### PostgreSQL 1. postgresql 相关依赖要放全,且要与服务端兼容,建议 >= 42.2.0 版本。 2. 使用Oracle JDK 8,使用 OpenJDK 8可能会遇到 PostgreSQL SCRAM 认证相关问题 3. 驱动[下载地址](https://mvnrepository.com/artifact/org.postgresql/postgresql) @@ -42,7 +59,7 @@ db.password.0=postgresql db.pool.config.driverClassName=org.postgresql.Driver ``` -## 支持DM +### DM 1. jdbc驱动选择: ```markdown + 在JDK8上运行时,选择:com.dameng:DmJdbcDriver18:8.1.3.140 @@ -78,7 +95,7 @@ db.pool.config.driverClassName=dm.jdbc.driver.DmDriver ``` -## 支持Kingbase +### Kingbase 1. jdbc配置 ```properties spring.sql.init.platform=kingbase @@ -89,7 +106,7 @@ db.password.0=thePassword db.pool.config.driverClassName=com.kingbase8.Driver ``` -## 支持magicdata +### magicdata 1. jdbc配置 ```properties @@ -102,7 +119,7 @@ db.pool.config.driverClassName=com.bes.magicdata.Driver ``` -## 支持SqlServer +### SqlServer 1. jdbc 驱动选择: 参考[微软官方说明](https://learn.microsoft.com/zh-cn/sql/connect/jdbc/microsoft-jdbc-driver-for-sql-server-support-matrix?view=sql-server-ver16),建议选择`12.4.1`版本 2. 使用database而不是schema @@ -122,7 +139,7 @@ db.password.0=SA123456Pswd db.pool.config.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver ``` -## 支持MySQL +### MySQL 1. schema初始化 ```shell @@ -146,7 +163,7 @@ spring.sql.plugin.builtin.enabled=false nacos_version >= 2.3.0 时,支持将mysql替换为本插件。 ``` -## 支持Oracle +### Oracle 1. 脚本执行 ```shell # 先用 system 创建 "C##NACOS" 用户 @@ -174,7 +191,7 @@ db.pool.config.driverClassName=oracle.jdbc.OracleDriver + 问题版本:<=2.4.1,已于 nacos 2.4.2 版本修复 + 影响范围:只会影响到dump接口,功能不受影响 -## 支持Derby +### Derby 1. 配置 ```properties -- Gitee From 5737974144f03ef217b8c759374938cf778a1b2b Mon Sep 17 00:00:00 2001 From: fjn1194361820 Date: Wed, 25 Sep 2024 18:06:26 +0800 Subject: [PATCH 10/15] =?UTF-8?q?*=20=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nacosplugin-datasource/installation.MD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nacosplugin-datasource/installation.MD b/nacosplugin-datasource/installation.MD index 5bba366..57c9770 100644 --- a/nacosplugin-datasource/installation.MD +++ b/nacosplugin-datasource/installation.MD @@ -31,7 +31,7 @@ db.pool.config.driverClassName=org.postgresql.Driver 为了更好的适配各种数据为库,插件提供了如下自定义配置: + `spring.sql.plugin.builtin.enabled`: 是否启用内置的datasource插件,只针对于 `derby, mysql`数据库,默认值为 `true`。nacos介质中默认提供了 `derby, mysql` 的mapper。如果你不想使用默认的mapper或者nacos提供的 mapper 有bug时,可以将该配置设置为 `false`。 -+ `db.sql.identifier.quoted.mode`: 指定创建数据库表的DDL语句中,使用的表名、字段名是否使用了引号。每个数据库的情况并不统一,本插件会根据 `nacosplugin-datasource-sqlscript`模拟中提供的ddl脚本,指定默认值,当没有使用`nacosplugin-datasource-sqlscript`提供的ddl脚本时,可能需要配置。可选值有3个: ++ `db.sql.identifier.quoted.mode`: 指定创建数据库表的DDL语句中,使用的表名、字段名使用引号的情况。每个数据库的情况并不统一,本插件会根据 `nacosplugin-datasource-sqlscript`模拟中提供的ddl脚本,指定默认值,当没有使用`nacosplugin-datasource-sqlscript`提供的ddl脚本时,可能需要配置。可选值有3个: + `QUOTED`:代表了所有的表名、字段都使用了引号。 + `UNQUOTED`:代表了所有的表名、字段都没有使用引号。 + `MIXED`:代表了表名、字段名,有的使用了引号,有的没有使用引号。 -- Gitee From f6c0cf0564e9f4dac67582b3ec4d78ddf150bcde Mon Sep 17 00:00:00 2001 From: fjn1194361820 Date: Wed, 25 Sep 2024 18:32:16 +0800 Subject: [PATCH 11/15] =?UTF-8?q?*=20=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nacosplugin-datasource/installation.MD | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nacosplugin-datasource/installation.MD b/nacosplugin-datasource/installation.MD index 57c9770..3116af0 100644 --- a/nacosplugin-datasource/installation.MD +++ b/nacosplugin-datasource/installation.MD @@ -35,7 +35,7 @@ db.pool.config.driverClassName=org.postgresql.Driver + `QUOTED`:代表了所有的表名、字段都使用了引号。 + `UNQUOTED`:代表了所有的表名、字段都没有使用引号。 + `MIXED`:代表了表名、字段名,有的使用了引号,有的没有使用引号。 -+ `db.sql.compatibility.type`:指定数据库所采用的兼容模式,目前主要解决兼容`ORACLE`模式时,会自动将 `''` 设定为 `NULL`的情况。从功能上来看,主要解决的是Oracle兼容模式下,在nacos的`public`租户下创建配置,查询不到的情况。如果不会在nacos的`public`租户下创建配置时,可以不关注该配置。可选值有: ++ `db.sql.compatibility.type`:指定数据库所采用的兼容模式,目前主要解决兼容`ORACLE`模式时,会自动将 `''` 设定为 `NULL`的情况。从功能上来看,主要解决的是Oracle兼容模式下,在nacos的`public`租户下创建配置,查询不到的情况。如果不会在nacos的`public`租户下创建配置时,可以不关注该配置。默认情况下,也都根据数据库本身的默认兼容模式做了配置。可选值有: + `oracle`:当创建数据库时,指定兼容了Oracle模式时。 + `postgresql`: 当创建数据库时,指定兼容了postgresql (简称PG) 模式时。 + `mysql`: 当创建数据库时,指定兼容了 mysql 模式时。 @@ -206,4 +206,7 @@ spring.sql.plugin.builtin.enabled=false 3. 版本限制 ```text nacos_version >= 2.3.0 时,支持将 derby 替换为本插件。 -``` \ No newline at end of file +``` + +### OpenGauss + -- Gitee From 28f130546d8586eedd8ff924d4a6e70f6a31419d Mon Sep 17 00:00:00 2001 From: fjn1194361820 Date: Wed, 25 Sep 2024 18:35:27 +0800 Subject: [PATCH 12/15] =?UTF-8?q?*=20=E4=BF=9D=E6=8C=81=E4=B8=8E=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=B8=80=E6=A0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/jn/nacos/plugin/datasource/PluginContext.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/PluginContext.java b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/PluginContext.java index 1be0f68..a831dc6 100644 --- a/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/PluginContext.java +++ b/nacosplugin-datasource/src/main/java/com/jn/nacos/plugin/datasource/PluginContext.java @@ -27,7 +27,7 @@ public class PluginContext extends AbstractInitializable { this.dialect = NacosDatabaseDialectManager.getInstance().getDialect(this.databaseName); this.identifierQuotedModeInDDL = NacosEnvs.getIdentifierQuotedMode(this.dialect); this.sqlCompatibilityType = NacosEnvs.getSqlCompatibilityType(this.dialect); - logger.info("dialect: {}, identifierQuotedMode: {}, sqlCompatibilityType: {}", this.databaseName, this.identifierQuotedModeInDDL, this.sqlCompatibilityType); + logger.info("dialect: {}, identifierQuotedMode: {}, sqlCompatibilityType: {}", this.databaseName, this.identifierQuotedModeInDDL, this.sqlCompatibilityType.getName()); logger.info("================== nacos datasource plugin context initial finished =================="); } -- Gitee From f82b7cb508179eef7ae892cbc629eeb6a9b81a28 Mon Sep 17 00:00:00 2001 From: fjn1194361820 Date: Wed, 25 Sep 2024 19:56:43 +0800 Subject: [PATCH 13/15] =?UTF-8?q?*=20=E6=9B=B4=E6=96=B0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nacosplugin-datasource/installation.MD | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/nacosplugin-datasource/installation.MD b/nacosplugin-datasource/installation.MD index 3116af0..4298387 100644 --- a/nacosplugin-datasource/installation.MD +++ b/nacosplugin-datasource/installation.MD @@ -116,6 +116,8 @@ db.url.0=jdbc:besmagicdata://localhost:3660/theDb?currentSchema=nacos&clientEnco db.user.0=username db.password.0=thePassword db.pool.config.driverClassName=com.bes.magicdata.Driver +# 需要根据实际情况配置,对于magicdata默认配置为 oracle +db.sql.compatibility.type=postgresql ``` @@ -210,3 +212,18 @@ nacos_version >= 2.3.0 时,支持将 derby 替换为本插件。 ### OpenGauss +1. 配置 +```properties + +# OpenGauss +spring.sql.init.platform=opengauss +#spring.sql.plugin.builtin.enabled=false +db.num=1 +db.url.0=jdbc:postgresql://localhost:15432/postgres?currentSchema=gaussdb&reWriteBatchedInserts=true +db.user.0=gaussdb +db.password.0=thePassword@123 +db.pool.config.driverClassName=org.postgresql.Driver +# 需要根据实际情况配置,对于OpenGauss默认配置为 oracle +db.sql.compatibility.type=postgresql + +``` -- Gitee From ff67e035391bd8ff6e26d50544042a77cd0b16e1 Mon Sep 17 00:00:00 2001 From: coderjn Date: Thu, 26 Sep 2024 18:46:28 +0800 Subject: [PATCH 14/15] =?UTF-8?q?*=20=E6=9B=B4=E6=96=B0release=20log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RELEASE-LOG.MD | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE-LOG.MD b/RELEASE-LOG.MD index 20cfbc8..90699ef 100644 --- a/RELEASE-LOG.MD +++ b/RELEASE-LOG.MD @@ -1,3 +1,5 @@ +## 2.0.9 +1. 处理数据库兼容模式 ## 2.0.8 1. 代码整理,简化 *Mapper 类 2. 避免dialect等重复创建,重复打印日志 -- Gitee From e418322d4f5892426c273124516e0130e065924a Mon Sep 17 00:00:00 2001 From: fjn1194361820 Date: Wed, 6 Nov 2024 10:30:37 +0800 Subject: [PATCH 15/15] =?UTF-8?q?*=20=E6=9B=B4=E6=96=B0readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 31abbaf..50b993c 100644 --- a/README.md +++ b/README.md @@ -16,10 +16,10 @@ #### 版本映射 -| 插件版本 | 构建时使用的nacos版本 | 支持的Nacos版本 | 测试过的nacos版本 | -|:-------------:|:------------------:|:------------:|-------------------------------------------------| -| `1.0.x` | `2.4.1` | 理论上`>=2.2.0` | `2.3.2`
`2.4.1`
`2.4.2` | -| `2.0.0` ~ `2.0.8` | `2.4.1` | 理论上`>=2.2.0` | `2.3.2`
`2.4.1`
`2.4.2` | +| 插件版本 | 构建时使用的nacos版本 | 支持的Nacos版本 | 测试过的nacos版本 | +|:-----------------:|:------------------:|:------------:|-------------------------------------------------| +| `1.0.x` | `2.4.1` | 理论上`>=2.2.0` | `2.3.2`
`2.4.1`
`2.4.2` | +| `2.0.0` ~ `2.0.9` | `2.4.1` | 理论上`>=2.2.0` | `2.3.2`
`2.4.1`
`2.4.2` | 支持的nacos 版本,从2.2.0开始原因:nacos 2.2.0才支持这一套插件系统,在此之前需要直接修改nacos的源码。 -- Gitee