From dfe5a2a7919d63ad6f9c16f70220d7773487ed90 Mon Sep 17 00:00:00 2001 From: wujl Date: Wed, 12 Jul 2023 10:26:44 +0800 Subject: [PATCH 1/2] SINODB --- .../java/com/mybatisflex/core/dialect/DbType.java | 4 ++++ .../com/mybatisflex/core/dialect/DbTypeUtil.java | 2 ++ .../mybatisflex/core/dialect/DialectFactory.java | 2 ++ .../core/dialect/LimitOffsetProcessor.java | 15 +++++++++++++++ 4 files changed, 23 insertions(+) diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbType.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbType.java index 48e0ae95..c14aa9b3 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbType.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbType.java @@ -163,6 +163,10 @@ public enum DbType { * Informix */ INFORMIX("informix", "Informix 数据库"), + /** + * sinodb + */ + SINODB("sinodb", "Informix 数据库"), /** * uxdb */ diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbTypeUtil.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbTypeUtil.java index a3b01b19..de760598 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbTypeUtil.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbTypeUtil.java @@ -160,6 +160,8 @@ public class DbTypeUtil { return DbType.TDENGINE; } else if (jdbcUrl.contains(":informix")) { return DbType.INFORMIX; + }else if (jdbcUrl.contains(":sinodb")) { + return DbType.SINODB; } else if (jdbcUrl.contains(":uxdb:")) { return DbType.UXDB; } else if (jdbcUrl.contains(":greenplum:")) { diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DialectFactory.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DialectFactory.java index f94f21ec..f7578246 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DialectFactory.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DialectFactory.java @@ -138,6 +138,8 @@ public class DialectFactory { return new CommonsDialectImpl(KeywordWrap.SQUARE_BRACKETS, LimitOffsetProcessor.SQLSERVER_2005); case INFORMIX: return new CommonsDialectImpl(KeywordWrap.DOUBLE_QUOTATION, LimitOffsetProcessor.INFORMIX); + case SINODB: + return new CommonsDialectImpl(KeywordWrap.DOUBLE_QUOTATION, LimitOffsetProcessor.SINODB); case SYBASE: return new CommonsDialectImpl(KeywordWrap.DOUBLE_QUOTATION, LimitOffsetProcessor.SYBASE); default: diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/LimitOffsetProcessor.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/LimitOffsetProcessor.java index 3fd7f017..3140019b 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/LimitOffsetProcessor.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/LimitOffsetProcessor.java @@ -156,6 +156,21 @@ public interface LimitOffsetProcessor { return sql; }; + + /** + * SINODB 的处理器 + * 适合 {@link DbType#INFORMIX} + */ + LimitOffsetProcessor SINODB = (dialect, sql, queryWrapper, limitRows, limitOffset) -> { + if (limitRows != null && limitOffset != null) { + // SELECT SKIP 2 FIRST 1 * FROM + sql.insert(6, SKIP + limitOffset + FIRST + limitRows); + } else if (limitRows != null) { + sql.insert(6, FIRST + limitRows); + } + return sql; + }; + /** * Firebird 的处理器 * 适合 {@link DbType#FIREBIRD} From 85e68007e92d02b0d382a5ea7beb51d0160dce52 Mon Sep 17 00:00:00 2001 From: wujl Date: Wed, 12 Jul 2023 10:38:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?add=20sinodb=20=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mybatisflex/core/dialect/DbType.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbType.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbType.java index c14aa9b3..5981f1c1 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbType.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/dialect/DbType.java @@ -166,7 +166,7 @@ public enum DbType { /** * sinodb */ - SINODB("sinodb", "Informix 数据库"), + SINODB("sinodb", "星瑞格数据库"), /** * uxdb */