From 8149a06b134e056dae1a40df6bc5648ce2f2c1b9 Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Thu, 10 Mar 2022 23:08:53 +0800 Subject: [PATCH 01/16] add datetime --- .../src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java b/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java index ef173f1..3d41f72 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java @@ -49,6 +49,7 @@ public abstract class TypeUtils {// NOSONAR public static final String REAL = "REAL"; public static final String SMALLINT = "SMALLINT"; public static final String TIME = "TIME"; + public static final String DATETIME = "DATETIME"; public static final String TIMESTAMP = "TIMESTAMP"; public static final String TINYINT = "TINYINT"; public static final String VARBINARY = "VARBINARY"; -- Gitee From ece5486459c5230dd59a5c5b6d8c52b45a00aa10 Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Thu, 10 Mar 2022 23:42:47 +0800 Subject: [PATCH 02/16] add type --- .../main/java/com/github/drinkjava2/jdialects/TypeUtils.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java b/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java index 3d41f72..4889f7d 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java @@ -54,6 +54,8 @@ public abstract class TypeUtils {// NOSONAR public static final String TINYINT = "TINYINT"; public static final String VARBINARY = "VARBINARY"; public static final String VARCHAR = "VARCHAR"; + public static final String MEDIUMINT = "MEDIUMINT"; + private static final Map, Type> JAVA_TO_TYPE_MAP = new HashMap, Type>(); private static final Map> TYPE_TO_JAVA_MAP = new HashMap>(); -- Gitee From 16ab24fdef5307cf8905f6b4377ebc4678c7aec7 Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Fri, 11 Mar 2022 00:24:40 +0800 Subject: [PATCH 03/16] add commant --- .../main/java/com/github/drinkjava2/jdialects/TypeUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java b/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java index 4889f7d..a43697f 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java @@ -146,7 +146,7 @@ public abstract class TypeUtils {// NOSONAR /** - * Convert column definition String to Dialect's Type + * Convert column definition String to Dialect's Type */ public static Type colDef2DialectType(String columnDefination) { String columnDef = StrUtils.substringBefore(columnDefination, "("); -- Gitee From 6d6c5422ba217c12662b1c088a36a659cf6522df Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Fri, 11 Mar 2022 00:29:36 +0800 Subject: [PATCH 04/16] add comment1 --- .../main/java/com/github/drinkjava2/jdialects/TypeUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java b/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java index a43697f..4889f7d 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java @@ -146,7 +146,7 @@ public abstract class TypeUtils {// NOSONAR /** - * Convert column definition String to Dialect's Type + * Convert column definition String to Dialect's Type */ public static Type colDef2DialectType(String columnDefination) { String columnDef = StrUtils.substringBefore(columnDefination, "("); -- Gitee From a8b5507130841fa885ebfef53d4cf421793d8f49 Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Fri, 11 Mar 2022 00:34:04 +0800 Subject: [PATCH 05/16] c2 --- .../main/java/com/github/drinkjava2/jdialects/TypeUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java b/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java index 4889f7d..a43697f 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java @@ -146,7 +146,7 @@ public abstract class TypeUtils {// NOSONAR /** - * Convert column definition String to Dialect's Type + * Convert column definition String to Dialect's Type */ public static Type colDef2DialectType(String columnDefination) { String columnDef = StrUtils.substringBefore(columnDefination, "("); -- Gitee From e5a58205722894af1eb5b7e72da4780b907e6a2d Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Fri, 11 Mar 2022 00:38:28 +0800 Subject: [PATCH 06/16] c3 --- .../main/java/com/github/drinkjava2/jdialects/TypeUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java b/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java index a43697f..4889f7d 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java @@ -146,7 +146,7 @@ public abstract class TypeUtils {// NOSONAR /** - * Convert column definition String to Dialect's Type + * Convert column definition String to Dialect's Type */ public static Type colDef2DialectType(String columnDefination) { String columnDef = StrUtils.substringBefore(columnDefination, "("); -- Gitee From 98405f34199920a571cf682a57bd8a550529b465 Mon Sep 17 00:00:00 2001 From: "hongkai.wang" Date: Fri, 11 Mar 2022 10:29:39 +0800 Subject: [PATCH 07/16] =?UTF-8?q?=20=E5=A2=9E=E5=8A=A0=E8=AF=A5=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=9A=84=E5=AE=89=E8=A3=85=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/scripts/install.sh | 1 + 1 file changed, 1 insertion(+) create mode 100644 core/scripts/install.sh diff --git a/core/scripts/install.sh b/core/scripts/install.sh new file mode 100644 index 0000000..5cfbb74 --- /dev/null +++ b/core/scripts/install.sh @@ -0,0 +1 @@ +mvn clean install -Dmaven.test.skip=true -e -U \ No newline at end of file -- Gitee From 722f058b29490ecf32737fc53daf85d43630c3fb Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Fri, 11 Mar 2022 21:28:15 +0800 Subject: [PATCH 08/16] 1.fix mysql type not support --- core/pom.xml | 2 +- .../jdialects/DialectTypeMappingTemplate.java | 21 +++- .../com/github/drinkjava2/jdialects/Type.java | 26 ++++- .../drinkjava2/jdialects/TypeUtils.java | 98 +------------------ 4 files changed, 50 insertions(+), 97 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index f0c9628..ee8a089 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -4,7 +4,7 @@ com.github.drinkjava2 jdialects - 5.0.11.jre8 + 5.0.11.s.jre8 jar jdialects diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java index db9e081..25e45c5 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java @@ -59,6 +59,18 @@ public class DialectTypeMappingTemplate { mp.put(Type.TINYINT, "tinyint"); mp.put(Type.VARBINARY, "blob"); mp.put(Type.VARCHAR, "varchar($l)"); + mp.put(Type.DATETIME, "datetime"); + mp.put(Type.MEDIUMINT, "MEDIUMINT"); + mp.put(Type.INT, "INT($l)"); + mp.put(Type.TINYBLOB, "TINYBLOB"); + mp.put(Type.TINYTEXT, "TINYTEXT"); + mp.put(Type.TEXT, "TEXT($l)"); + mp.put(Type.MEDIUMBLOB, "MEDIUMBLOB"); + mp.put(Type.MEDIUMTEXT, "MEDIUMTEXT"); + mp.put(Type.LONGBLOB, "LONGBLOB"); + mp.put(Type.LONGTEXT, "LONGTEXT"); + mp.put(Type.YEAR, "YEAR($l)"); + mp.put(Type.JSON, "JSON"); copyTo(mp, Dialect.SQLiteDialect); mp.put(Type.BIGINT, "integer"); mp.put(Type.BINARY, "binary<255|N/A"); @@ -432,8 +444,15 @@ public class DialectTypeMappingTemplate { mp.put(Type.TINYINT, "tinyint"); mp.put(Type.VARBINARY, "tinyblob<255|blob<65535|mediumblob<16777215|longblob"); mp.put(Type.VARCHAR, "varchar($l)<255|longtext"); - copyTo(mp, Dialect.MySQLDialect); + + mp.put(Type.SMALLINT, "smallint($l)"); + mp.put(Type.MEDIUMINT, "MEDIUMINT($l)"); + mp.put(Type.TINYINT, "tinyint($l)"); + mp.put(Type.BIGINT, "bigint($l)"); + mp.put(Type.YEAR, "year($l)"); mp.put(Type.VARCHAR, "varchar($l)<65535|longtext"); + mp.put(Type.TIMESTAMP, "timestamp"); + copyTo(mp, Dialect.MySQLDialect); copyTo(mp, Dialect.MySQL5Dialect); copyTo(mp, Dialect.MySQL55Dialect); mp.put(Type.JAVA_OBJECT, "json"); diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/Type.java b/core/src/main/java/com/github/drinkjava2/jdialects/Type.java index 0a77ab5..76331ad 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/Type.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/Type.java @@ -11,6 +11,7 @@ */ package com.github.drinkjava2.jdialects; + /** * SQL Type definitions * @@ -45,6 +46,29 @@ public enum Type { , TIMESTAMP// , TINYINT// , VARBINARY// - , VARCHAR; + , VARCHAR + , DATETIME + , MEDIUMINT + , INT + , TINYBLOB + , TINYTEXT + , TEXT + , MEDIUMBLOB + , MEDIUMTEXT + , LONGBLOB + , LONGTEXT + , YEAR + , JSON + ; + + + public static Type getByTypeName(String typeName) { + for (Type val : Type.values()) { + if (val.name().equalsIgnoreCase(typeName)) { + return val; + } + } + throw new DialectException("'" + typeName + "' can not be map to a dialect type"); + } } diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java b/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java index 4889f7d..0e15004 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/TypeUtils.java @@ -24,39 +24,6 @@ import java.util.Map; */ public abstract class TypeUtils {// NOSONAR - public static final String BIGINT = "BIGINT"; - public static final String BINARY = "BINARY"; - public static final String BIT = "BIT"; - public static final String BLOB = "BLOB"; - public static final String BOOLEAN = "BOOLEAN"; - public static final String CHAR = "CHAR"; - public static final String CLOB = "CLOB"; - public static final String DATE = "DATE"; - public static final String DECIMAL = "DECIMAL"; - public static final String DOUBLE = "DOUBLE"; - public static final String FLOAT = "FLOAT"; - public static final String INTEGER = "INTEGER"; - public static final String INT = "INT"; - public static final String JAVA_OBJECT = "JAVA_OBJECT"; - public static final String LONGNVARCHAR = "LONGNVARCHAR"; - public static final String LONGVARBINARY = "LONGVARBINARY"; - public static final String LONGVARCHAR = "LONGVARCHAR"; - public static final String NCHAR = "NCHAR"; - public static final String NCLOB = "NCLOB"; - public static final String NUMERIC = "NUMERIC"; - public static final String NVARCHAR = "NVARCHAR"; - public static final String UNKNOW = "UNKNOW"; - public static final String REAL = "REAL"; - public static final String SMALLINT = "SMALLINT"; - public static final String TIME = "TIME"; - public static final String DATETIME = "DATETIME"; - public static final String TIMESTAMP = "TIMESTAMP"; - public static final String TINYINT = "TINYINT"; - public static final String VARBINARY = "VARBINARY"; - public static final String VARCHAR = "VARCHAR"; - public static final String MEDIUMINT = "MEDIUMINT"; - - private static final Map, Type> JAVA_TO_TYPE_MAP = new HashMap, Type>(); private static final Map> TYPE_TO_JAVA_MAP = new HashMap>(); static { @@ -150,68 +117,11 @@ public abstract class TypeUtils {// NOSONAR */ public static Type colDef2DialectType(String columnDefination) { String columnDef = StrUtils.substringBefore(columnDefination, "("); - if (BIGINT.equalsIgnoreCase(columnDef)) - return Type.BIGINT; - if (BINARY.equalsIgnoreCase(columnDef)) - return Type.BINARY; - if (BIT.equalsIgnoreCase(columnDef)) - return Type.BIT; - if (BLOB.equalsIgnoreCase(columnDef)) - return Type.BLOB; - if (BOOLEAN.equalsIgnoreCase(columnDef)) - return Type.BOOLEAN; - if (CHAR.equalsIgnoreCase(columnDef)) - return Type.CHAR; - if (CLOB.equalsIgnoreCase(columnDef)) - return Type.CLOB; - if (DATE.equalsIgnoreCase(columnDef)) - return Type.DATE; - if (DECIMAL.equalsIgnoreCase(columnDef)) - return Type.DECIMAL; - if (DOUBLE.equalsIgnoreCase(columnDef)) - return Type.DOUBLE; - if (FLOAT.equalsIgnoreCase(columnDef)) - return Type.FLOAT; - if (INTEGER.equalsIgnoreCase(columnDef)) - return Type.INTEGER; - if (INT.equalsIgnoreCase(columnDef)) - return Type.INTEGER; - if (JAVA_OBJECT.equalsIgnoreCase(columnDef)) - return Type.JAVA_OBJECT; - if (LONGNVARCHAR.equalsIgnoreCase(columnDef)) - return Type.LONGNVARCHAR; - if (LONGVARBINARY.equalsIgnoreCase(columnDef)) - return Type.LONGVARBINARY; - if (LONGVARCHAR.equalsIgnoreCase(columnDef)) - return Type.LONGVARCHAR; - if (NCHAR.equalsIgnoreCase(columnDef)) - return Type.NCHAR; - if (NCLOB.equalsIgnoreCase(columnDef)) - return Type.NCLOB; - if (NUMERIC.equalsIgnoreCase(columnDef)) - return Type.NUMERIC; - if (NVARCHAR.equalsIgnoreCase(columnDef)) - return Type.NVARCHAR; - if (UNKNOW.equalsIgnoreCase(columnDef)) - return Type.UNKNOW; - if (REAL.equalsIgnoreCase(columnDef)) - return Type.REAL; - if (SMALLINT.equalsIgnoreCase(columnDef)) - return Type.SMALLINT; - if (TIME.equalsIgnoreCase(columnDef)) - return Type.TIME; - if (TIMESTAMP.equalsIgnoreCase(columnDef)) - return Type.TIMESTAMP; - if (TINYINT.equalsIgnoreCase(columnDef)) - return Type.TINYINT; - if (VARBINARY.equalsIgnoreCase(columnDef)) - return Type.VARBINARY; - if (VARCHAR.equalsIgnoreCase(columnDef)) - return Type.VARCHAR; - if ("TEXT".equalsIgnoreCase(columnDef)) - return Type.VARCHAR; + if ("TEXT".equalsIgnoreCase(columnDef)) + return Type.VARCHAR; + return Type.getByTypeName(columnDef); // @formatter:on - throw new DialectException("'" + columnDef + "' can not be map to a dialect type"); +// throw new DialectException("'" + columnDef + "' can not be map to a dialect type"); } /** Convert java.sql.Types.xxx type to Dialect's Type */ -- Gitee From 9c6db22d83876dac2a0d36d3132fe58cedcc77ab Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Sun, 13 Mar 2022 20:14:05 +0800 Subject: [PATCH 09/16] add more type --- .../java/com/github/drinkjava2/jdialects/Dialect.java | 2 +- .../jdialects/DialectTypeMappingTemplate.java | 10 +++++++++- .../java/com/github/drinkjava2/jdialects/Type.java | 10 +++++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/Dialect.java b/core/src/main/java/com/github/drinkjava2/jdialects/Dialect.java index df7fb16..5385244 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/Dialect.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/Dialect.java @@ -312,7 +312,7 @@ public class Dialect { for (String templ : typeTempls) { if (templ.contains("<")) {// varchar($l)<255 String[] limitType = StrUtils.split("<", templ); - if (col.getLength() > 0 && col.getLength() < Integer.parseInt(limitType[1]))// NOSONAR + if (col.getLength() > 0 && col.getLength() <= Integer.parseInt(limitType[1]))// NOSONAR return replacePlaceHolders(type, limitType[0], col); } else {// varchar($l) return replacePlaceHolders(type, templ, col); diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java index 25e45c5..a55bfa1 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java @@ -488,6 +488,7 @@ public class DialectTypeMappingTemplate { mp.put(Type.TINYINT, "number(3,0)"); mp.put(Type.VARBINARY, "raw($l)<2000|long raw"); mp.put(Type.VARCHAR, "varchar2($l)<4000|long"); + copyTo(mp, Dialect.OracleDialect); mp.put(Type.BINARY, "raw($l)<2000|long raw"); mp.put(Type.BOOLEAN, "number(1,0)"); @@ -497,7 +498,14 @@ public class DialectTypeMappingTemplate { mp.put(Type.LONGVARCHAR, "long"); mp.put(Type.NVARCHAR, "nvarchar2($l)"); mp.put(Type.TIMESTAMP, "timestamp"); - mp.put(Type.VARCHAR, "varchar2($l char)<4000|long"); + mp.put(Type.VARCHAR, "varchar($l char)<4000|long"); + //add new + mp.put(Type.BINARY_FLOAT, "BINARY_FLOAT"); + mp.put(Type.BINARY_DOUBLE, "BINARY_DOUBLE"); + mp.put(Type.DOUBLE_PRECISION, "DOUBLE PRECISION"); + mp.put(Type.TIMESTAMP_WITH_TIME_ZONE, "TIMESTAMP WITH TIME ZONE"); + mp.put(Type.TIMESTAMP_WITH_LOCAL_TIME_ZONE, "TIMESTAMP WITH LOCAL TIME ZONE"); + mp.put(Type.VARCHAR2, "varchar2($l)"); copyTo(mp, Dialect.Oracle10gDialect); copyTo(mp, Dialect.Oracle12cDialect); mp.put(Type.CHAR, "char(1)"); diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/Type.java b/core/src/main/java/com/github/drinkjava2/jdialects/Type.java index 76331ad..d22661e 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/Type.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/Type.java @@ -47,6 +47,7 @@ public enum Type { , TINYINT// , VARBINARY// , VARCHAR + //mysql , DATETIME , MEDIUMINT , INT @@ -59,9 +60,16 @@ public enum Type { , LONGTEXT , YEAR , JSON + //oracle + , BINARY_FLOAT + , DOUBLE_PRECISION + , BINARY_DOUBLE + , TIMESTAMP_WITH_TIME_ZONE + , TIMESTAMP_WITH_LOCAL_TIME_ZONE + , VARCHAR2 ; - + //TODO 此处需要考虑数据类型多对一的情况 public static Type getByTypeName(String typeName) { for (Type val : Type.values()) { if (val.name().equalsIgnoreCase(typeName)) { -- Gitee From bcbbab2f11bb240345b46905824cffbc38f58e13 Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Sat, 26 Mar 2022 16:41:10 +0800 Subject: [PATCH 10/16] fix mysql char not length --- .../github/drinkjava2/jdialects/DialectTypeMappingTemplate.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java index a55bfa1..62c5a9c 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java @@ -428,7 +428,7 @@ public class DialectTypeMappingTemplate { mp.put(Type.BIT, "bit"); mp.put(Type.BLOB, "longblob"); mp.put(Type.BOOLEAN, "bit"); - mp.put(Type.CHAR, "char(1)"); + mp.put(Type.CHAR, "char($l)"); mp.put(Type.CLOB, "longtext"); mp.put(Type.DATE, "date"); mp.put(Type.DOUBLE, "double precision"); -- Gitee From f13ed1948c49d7c18a6738c9215d0d8d799122d8 Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Mon, 28 Mar 2022 21:24:48 +0800 Subject: [PATCH 11/16] fix oracle char map --- .../drinkjava2/jdialects/DialectTypeMappingTemplate.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java index 62c5a9c..3e05abd 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java @@ -492,7 +492,7 @@ public class DialectTypeMappingTemplate { copyTo(mp, Dialect.OracleDialect); mp.put(Type.BINARY, "raw($l)<2000|long raw"); mp.put(Type.BOOLEAN, "number(1,0)"); - mp.put(Type.CHAR, "char(1 char)"); + mp.put(Type.CHAR, "char($l char)"); mp.put(Type.LONGNVARCHAR, "nvarchar2($l)"); mp.put(Type.LONGVARBINARY, "long raw"); mp.put(Type.LONGVARCHAR, "long"); @@ -508,7 +508,6 @@ public class DialectTypeMappingTemplate { mp.put(Type.VARCHAR2, "varchar2($l)"); copyTo(mp, Dialect.Oracle10gDialect); copyTo(mp, Dialect.Oracle12cDialect); - mp.put(Type.CHAR, "char(1)"); mp.put(Type.LONGNVARCHAR, "nvarchar($l)"); mp.put(Type.NVARCHAR, "nvarchar($l)"); mp.put(Type.TIMESTAMP, "date"); @@ -516,7 +515,6 @@ public class DialectTypeMappingTemplate { copyTo(mp, Dialect.Oracle8iDialect); mp.put(Type.BINARY, "N/A"); mp.put(Type.BOOLEAN, "boolean"); - mp.put(Type.CHAR, "char(1 char)"); mp.put(Type.LONGVARBINARY, "bit varying($l)"); mp.put(Type.LONGVARCHAR, "varchar($l)"); mp.put(Type.TIMESTAMP, "timestamp"); @@ -533,7 +531,6 @@ public class DialectTypeMappingTemplate { mp.put(Type.BINARY, "N/A"); mp.put(Type.BIT, "smallint"); mp.put(Type.BOOLEAN, "boolean"); - mp.put(Type.CHAR, "char(1)"); mp.put(Type.DECIMAL, "N/A"); mp.put(Type.INTEGER, "integer"); mp.put(Type.LONGNVARCHAR, "nvarchar($l)"); -- Gitee From bae92c8eb43f21c655ee7f231d4e69dff1f8bd18 Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Mon, 28 Mar 2022 21:32:48 +0800 Subject: [PATCH 12/16] fix PointbaseDialect char map --- .../github/drinkjava2/jdialects/DialectTypeMappingTemplate.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java index 3e05abd..45c9a09 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java @@ -531,6 +531,7 @@ public class DialectTypeMappingTemplate { mp.put(Type.BINARY, "N/A"); mp.put(Type.BIT, "smallint"); mp.put(Type.BOOLEAN, "boolean"); + mp.put(Type.CHAR, "char($l)"); mp.put(Type.DECIMAL, "N/A"); mp.put(Type.INTEGER, "integer"); mp.put(Type.LONGNVARCHAR, "nvarchar($l)"); -- Gitee From 530d952b22d86623860973a5c2478499dfae3977 Mon Sep 17 00:00:00 2001 From: "yufei.liu" Date: Tue, 29 Mar 2022 21:28:26 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E5=BB=BA=E8=A1=A8=E8=AF=AD=E5=8F=A5?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=20create=20table=20if=20not=20exists?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/github/drinkjava2/jdialects/DDLFeatures.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/DDLFeatures.java b/core/src/main/java/com/github/drinkjava2/jdialects/DDLFeatures.java index 9cab7ad..d11e89f 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/DDLFeatures.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/DDLFeatures.java @@ -270,7 +270,7 @@ public class DDLFeatures { ddl.createPooledSequenceStrings = "create sequence _SEQ start with 11 increment by 33"; ddl.createSchemaCommand = "create schema _SCHEMANAME"; ddl.createSequenceStrings = "create sequence _SEQ"; - ddl.createTableString = "create table"; + ddl.createTableString = "create table if not exists"; ddl.currentSchemaCommand = NOT_SUPPORT; ddl.dropCatalogCommand = NOT_SUPPORT; ddl.dropForeignKeyString = " drop constraint "; -- Gitee From 44f2da9d35b863224cf85747c1a04e333df3498a Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Wed, 30 Mar 2022 21:10:02 +0800 Subject: [PATCH 14/16] oracle support INTERVAL_YEAR_TO_MONTH,INTERVAL_DAY_TO_SECOND --- .../github/drinkjava2/jdialects/DialectTypeMappingTemplate.java | 2 ++ core/src/main/java/com/github/drinkjava2/jdialects/Type.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java index 45c9a09..f501ea3 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/DialectTypeMappingTemplate.java @@ -505,6 +505,8 @@ public class DialectTypeMappingTemplate { mp.put(Type.DOUBLE_PRECISION, "DOUBLE PRECISION"); mp.put(Type.TIMESTAMP_WITH_TIME_ZONE, "TIMESTAMP WITH TIME ZONE"); mp.put(Type.TIMESTAMP_WITH_LOCAL_TIME_ZONE, "TIMESTAMP WITH LOCAL TIME ZONE"); + mp.put(Type.INTERVAL_YEAR_TO_MONTH, "INTERVAL YEAR($l) TO MONTH"); + mp.put(Type.INTERVAL_DAY_TO_SECOND, "INTERVAL DAY($p) TO SECOND($s)"); mp.put(Type.VARCHAR2, "varchar2($l)"); copyTo(mp, Dialect.Oracle10gDialect); copyTo(mp, Dialect.Oracle12cDialect); diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/Type.java b/core/src/main/java/com/github/drinkjava2/jdialects/Type.java index d22661e..94a13b2 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/Type.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/Type.java @@ -67,6 +67,8 @@ public enum Type { , TIMESTAMP_WITH_TIME_ZONE , TIMESTAMP_WITH_LOCAL_TIME_ZONE , VARCHAR2 + ,INTERVAL_YEAR_TO_MONTH + ,INTERVAL_DAY_TO_SECOND ; //TODO 此处需要考虑数据类型多对一的情况 -- Gitee From 550ade8684f7f85fc56ae2026830ba8768b8f2ea Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Wed, 30 Mar 2022 22:35:42 +0800 Subject: [PATCH 15/16] add features Change-Id: I0027c6007509d040095dddf5203f3cdc74c14a27 --- .../drinkjava2/jdialects/DDLFeatures.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/DDLFeatures.java b/core/src/main/java/com/github/drinkjava2/jdialects/DDLFeatures.java index 9cab7ad..3db1065 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/DDLFeatures.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/DDLFeatures.java @@ -23,6 +23,9 @@ public class DDLFeatures { public static final String NOT_SUPPORT = "NOT_SUPPORT"; protected String addColumnString; protected String addColumnSuffixString; + protected String dropColumnString; + protected String columnSuffixString; + protected String modifyColumnString; protected String addForeignKeyConstraintString; protected String addFKeyRefPkeyString;// If ref pkey, can ignore ref columns protected String addPrimaryKeyConstraintString; @@ -257,9 +260,13 @@ public class DDLFeatures { // ===========bellow is generated by tool ============ protected static void initDDLFeatures(Dialect dia) { + DDLFeatures ddl = dia.ddlFeatures; ddl.addColumnString = "add"; ddl.addColumnSuffixString = ""; + ddl.dropColumnString = NOT_SUPPORT; + ddl.columnSuffixString = NOT_SUPPORT; + ddl.modifyColumnString = NOT_SUPPORT; ddl.addFKeyRefPkeyString = " add constraint _FKEYNAME foreign key (_FK1, _FK2) references _REFTABLE"; ddl.addForeignKeyConstraintString = " add constraint _FKEYNAME foreign key (_FK1, _FK2) references _REFTABLE (_REF1, _REF2)"; ddl.addPrimaryKeyConstraintString = " add constraint _PKEYNAME primary key "; @@ -999,7 +1006,11 @@ public class DDLFeatures { } break; case MySQLDialect: { - ddl.addColumnString = "add column"; + ddl.addColumnString = "add"; + ddl.addColumnSuffixString = ""; + ddl.dropColumnString = NOT_SUPPORT; + ddl.columnSuffixString = NOT_SUPPORT; + ddl.modifyColumnString = NOT_SUPPORT; ddl.addFKeyRefPkeyString = " add constraint _FKEYNAME foreign key (_FK1, _FK2) references _REFTABLE (_REF1, _REF2)"; ddl.closeQuote = "`"; ddl.columnComment = " comment '_COMMENT'"; @@ -1057,6 +1068,10 @@ public class DDLFeatures { break; case MySQL55Dialect: { ddl.addColumnString = "add column"; + ddl.addColumnSuffixString = ""; + ddl.dropColumnString = "alter table"; + ddl.columnSuffixString = NOT_SUPPORT; + ddl.modifyColumnString = NOT_SUPPORT; ddl.addFKeyRefPkeyString = " add constraint _FKEYNAME foreign key (_FK1, _FK2) references _REFTABLE (_REF1, _REF2)"; ddl.closeQuote = "`"; ddl.columnComment = " comment '_COMMENT'"; -- Gitee From db557606790d0d196dcfed913e6d9cddf024c912 Mon Sep 17 00:00:00 2001 From: "anchor.lu" Date: Thu, 31 Mar 2022 00:08:34 +0800 Subject: [PATCH 16/16] add features create table if not exists for mysql Change-Id: I38f8ca9bde8e3f2eccadbb0d8380bb750fe78ad2 --- .../com/github/drinkjava2/jdialects/DDLFeatures.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/github/drinkjava2/jdialects/DDLFeatures.java b/core/src/main/java/com/github/drinkjava2/jdialects/DDLFeatures.java index 014d10a..857c12c 100644 --- a/core/src/main/java/com/github/drinkjava2/jdialects/DDLFeatures.java +++ b/core/src/main/java/com/github/drinkjava2/jdialects/DDLFeatures.java @@ -103,7 +103,7 @@ public class DDLFeatures { ddl.createPooledSequenceStrings = "create sequence _SEQ start with 11 increment by 33"; ddl.createSchemaCommand = "create schema _SCHEMANAME"; ddl.createSequenceStrings = "create sequence _SEQ"; - ddl.createTableString = "create table if not exists"; + ddl.createTableString = "create table"; ddl.currentSchemaCommand = NOT_SUPPORT; ddl.dropCatalogCommand = NOT_SUPPORT; ddl.dropColumnString = "drop column"; @@ -857,6 +857,7 @@ public class DDLFeatures { ddl.addFKeyRefPkeyString = " add constraint _FKEYNAME foreign key (_FK1, _FK2) references _REFTABLE (_REF1, _REF2)"; ddl.closeQuote = "`"; ddl.columnComment = " comment '_COMMENT'"; + ddl.createTableString = "create table if not exists"; ddl.createCatalogCommand = "create database _CATALOGNAME"; ddl.createPooledSequenceStrings = NOT_SUPPORT; ddl.createSchemaCommand = NOT_SUPPORT; @@ -885,6 +886,7 @@ public class DDLFeatures { ddl.addFKeyRefPkeyString = " add constraint _FKEYNAME foreign key (_FK1, _FK2) references _REFTABLE (_REF1, _REF2)"; ddl.closeQuote = "`"; ddl.columnComment = " comment '_COMMENT'"; + ddl.createTableString = "create table if not exists"; ddl.createCatalogCommand = "create database _CATALOGNAME"; ddl.createPooledSequenceStrings = NOT_SUPPORT; ddl.createSchemaCommand = NOT_SUPPORT; @@ -918,6 +920,7 @@ public class DDLFeatures { ddl.addFKeyRefPkeyString = " add constraint _FKEYNAME foreign key (_FK1, _FK2) references _REFTABLE (_REF1, _REF2)"; ddl.closeQuote = "`"; ddl.columnComment = " comment '_COMMENT'"; + ddl.createTableString = "create table if not exists"; ddl.createCatalogCommand = "create database _CATALOGNAME"; ddl.createPooledSequenceStrings = NOT_SUPPORT; ddl.createSchemaCommand = NOT_SUPPORT; @@ -948,6 +951,7 @@ public class DDLFeatures { ddl.addFKeyRefPkeyString = " add constraint _FKEYNAME foreign key (_FK1, _FK2) references _REFTABLE (_REF1, _REF2)"; ddl.closeQuote = "`"; ddl.columnComment = " comment '_COMMENT'"; + ddl.createTableString = "create table if not exists"; ddl.createCatalogCommand = "create database _CATALOGNAME"; ddl.createPooledSequenceStrings = NOT_SUPPORT; ddl.createSchemaCommand = NOT_SUPPORT; @@ -978,6 +982,7 @@ public class DDLFeatures { ddl.addFKeyRefPkeyString = " add constraint _FKEYNAME foreign key (_FK1, _FK2) references _REFTABLE (_REF1, _REF2)"; ddl.closeQuote = "`"; ddl.columnComment = " comment '_COMMENT'"; + ddl.createTableString = "create table if not exists"; ddl.createCatalogCommand = "create database _CATALOGNAME"; ddl.createPooledSequenceStrings = NOT_SUPPORT; ddl.createSchemaCommand = NOT_SUPPORT; @@ -1008,6 +1013,7 @@ public class DDLFeatures { ddl.addFKeyRefPkeyString = " add constraint _FKEYNAME foreign key (_FK1, _FK2) references _REFTABLE (_REF1, _REF2)"; ddl.closeQuote = "`"; ddl.columnComment = " comment '_COMMENT'"; + ddl.createTableString = "create table if not exists"; ddl.createCatalogCommand = "create database _CATALOGNAME"; ddl.createPooledSequenceStrings = NOT_SUPPORT; ddl.createSchemaCommand = NOT_SUPPORT; @@ -1038,6 +1044,7 @@ public class DDLFeatures { ddl.addFKeyRefPkeyString = " add constraint _FKEYNAME foreign key (_FK1, _FK2) references _REFTABLE (_REF1, _REF2)"; ddl.closeQuote = "`"; ddl.columnComment = " comment '_COMMENT'"; + ddl.createTableString = "create table if not exists"; ddl.createCatalogCommand = "create database _CATALOGNAME"; ddl.createPooledSequenceStrings = NOT_SUPPORT; ddl.createSchemaCommand = NOT_SUPPORT; @@ -1067,6 +1074,7 @@ public class DDLFeatures { ddl.addFKeyRefPkeyString = " add constraint _FKEYNAME foreign key (_FK1, _FK2) references _REFTABLE (_REF1, _REF2)"; ddl.closeQuote = "`"; ddl.columnComment = " comment '_COMMENT'"; + ddl.createTableString = "create table if not exists"; ddl.createCatalogCommand = "create database _CATALOGNAME"; ddl.createPooledSequenceStrings = NOT_SUPPORT; ddl.createSchemaCommand = NOT_SUPPORT; @@ -1095,6 +1103,7 @@ public class DDLFeatures { ddl.addFKeyRefPkeyString = " add constraint _FKEYNAME foreign key (_FK1, _FK2) references _REFTABLE (_REF1, _REF2)"; ddl.closeQuote = "`"; ddl.columnComment = " comment '_COMMENT'"; + ddl.createTableString = "create table if not exists"; ddl.createCatalogCommand = "create database _CATALOGNAME"; ddl.createPooledSequenceStrings = NOT_SUPPORT; ddl.createSchemaCommand = NOT_SUPPORT; -- Gitee