From 82b882b64a73a86ecee24e0827087b9c37f1a47f Mon Sep 17 00:00:00 2001 From: daitianci Date: Thu, 25 Mar 2021 16:21:51 +0800 Subject: [PATCH] postgrepsql jsonp support --- .../com/gitee/gen/gen/TableDefinition.java | 9 +++++++++ .../main/java/com/gitee/gen/gen/TypeEnum.java | 1 + .../java/com/gitee/gen/gen/TypeFormatter.java | 5 +++++ .../gen/converter/JavaColumnTypeConverter.java | 5 ++++- .../gen/gen/mysql/MySqlTypeFormatter.java | 5 +++++ .../gen/gen/oracle/OracleTypeFormatter.java | 5 +++++ .../postgresql/PostgreSqlTypeFormatter.java | 5 +++++ .../gen/sqlserver/SqlServerTypeFormatter.java | 5 +++++ gen/src/main/resources/application.properties | 18 +++++++++--------- 9 files changed, 48 insertions(+), 10 deletions(-) diff --git a/gen/src/main/java/com/gitee/gen/gen/TableDefinition.java b/gen/src/main/java/com/gitee/gen/gen/TableDefinition.java index 7439aa4..59b31b5 100644 --- a/gen/src/main/java/com/gitee/gen/gen/TableDefinition.java +++ b/gen/src/main/java/com/gitee/gen/gen/TableDefinition.java @@ -95,6 +95,15 @@ public class TableDefinition { return false; } + public boolean getHasJsonbField() { + for (ColumnDefinition definition : columnDefinitions) { + if ("Map".equals(((JavaColumnDefinition) definition).getJavaType())) { + return true; + } + } + return false; + } + /** * 获取主键信息 * diff --git a/gen/src/main/java/com/gitee/gen/gen/TypeEnum.java b/gen/src/main/java/com/gitee/gen/gen/TypeEnum.java index 3c30b1a..57af770 100644 --- a/gen/src/main/java/com/gitee/gen/gen/TypeEnum.java +++ b/gen/src/main/java/com/gitee/gen/gen/TypeEnum.java @@ -31,6 +31,7 @@ public enum TypeEnum { BLOB("blob"), + JSONB("jsonb") ; private final String type; diff --git a/gen/src/main/java/com/gitee/gen/gen/TypeFormatter.java b/gen/src/main/java/com/gitee/gen/gen/TypeFormatter.java index 830fbbb..8995806 100644 --- a/gen/src/main/java/com/gitee/gen/gen/TypeFormatter.java +++ b/gen/src/main/java/com/gitee/gen/gen/TypeFormatter.java @@ -39,6 +39,9 @@ public interface TypeFormatter { if (isDecimal(columnType)) { return TypeEnum.DECIMAL.getType(); } + if(isJsonb(columnType)){ + return TypeEnum.JSONB.getType(); + } if (isVarchar(columnType)) { return TypeEnum.VARCHAR.getType(); } @@ -48,6 +51,7 @@ public interface TypeFormatter { if (isBlob(columnType)) { return TypeEnum.BLOB.getType(); } + return TypeEnum.VARCHAR.getType(); } @@ -72,4 +76,5 @@ public interface TypeFormatter { boolean isVarchar(String columnType); boolean isDatetime(String columnType); boolean isBlob(String columnType); + boolean isJsonb(String columnType); } diff --git a/gen/src/main/java/com/gitee/gen/gen/converter/JavaColumnTypeConverter.java b/gen/src/main/java/com/gitee/gen/gen/converter/JavaColumnTypeConverter.java index 291feb3..eb32e3a 100644 --- a/gen/src/main/java/com/gitee/gen/gen/converter/JavaColumnTypeConverter.java +++ b/gen/src/main/java/com/gitee/gen/gen/converter/JavaColumnTypeConverter.java @@ -25,6 +25,7 @@ public class JavaColumnTypeConverter implements ColumnTypeConverter { TYPE_MAP.put(TypeEnum.VARCHAR.getType(), "string"); TYPE_MAP.put(TypeEnum.DATETIME.getType(), "Date"); TYPE_MAP.put(TypeEnum.BLOB.getType(), "byte[]"); + TYPE_MAP.put(TypeEnum.JSONB.getType(), "Map"); TYPE_BOX_MAP.put(TypeEnum.BIT.getType(), "Boolean"); TYPE_BOX_MAP.put(TypeEnum.BOOLEAN.getType(), "Boolean"); @@ -38,11 +39,13 @@ public class JavaColumnTypeConverter implements ColumnTypeConverter { TYPE_BOX_MAP.put(TypeEnum.VARCHAR.getType(), "String"); TYPE_BOX_MAP.put(TypeEnum.DATETIME.getType(), "Date"); TYPE_BOX_MAP.put(TypeEnum.BLOB.getType(), "Byte[]"); + TYPE_BOX_MAP.put(TypeEnum.JSONB.getType(), "Map"); } @Override public String convertType(String type) { - return TYPE_MAP.getOrDefault(type, "String"); + String string = TYPE_MAP.getOrDefault(type, "String"); + return string; } @Override diff --git a/gen/src/main/java/com/gitee/gen/gen/mysql/MySqlTypeFormatter.java b/gen/src/main/java/com/gitee/gen/gen/mysql/MySqlTypeFormatter.java index d2989c5..c504bef 100644 --- a/gen/src/main/java/com/gitee/gen/gen/mysql/MySqlTypeFormatter.java +++ b/gen/src/main/java/com/gitee/gen/gen/mysql/MySqlTypeFormatter.java @@ -69,4 +69,9 @@ public class MySqlTypeFormatter implements TypeFormatter { public boolean isBlob(String columnType) { return contains(Collections.singletonList("blob"), columnType); } + + @Override + public boolean isJsonb(String columnType) { + return false; + } } diff --git a/gen/src/main/java/com/gitee/gen/gen/oracle/OracleTypeFormatter.java b/gen/src/main/java/com/gitee/gen/gen/oracle/OracleTypeFormatter.java index 25aadef..2516ee2 100644 --- a/gen/src/main/java/com/gitee/gen/gen/oracle/OracleTypeFormatter.java +++ b/gen/src/main/java/com/gitee/gen/gen/oracle/OracleTypeFormatter.java @@ -69,4 +69,9 @@ public class OracleTypeFormatter implements TypeFormatter { public boolean isBlob(String columnType) { return contains(Collections.singletonList("blob"), columnType); } + + @Override + public boolean isJsonb(String columnType) { + return false; + } } diff --git a/gen/src/main/java/com/gitee/gen/gen/postgresql/PostgreSqlTypeFormatter.java b/gen/src/main/java/com/gitee/gen/gen/postgresql/PostgreSqlTypeFormatter.java index 5499782..9f6939e 100644 --- a/gen/src/main/java/com/gitee/gen/gen/postgresql/PostgreSqlTypeFormatter.java +++ b/gen/src/main/java/com/gitee/gen/gen/postgresql/PostgreSqlTypeFormatter.java @@ -69,4 +69,9 @@ public class PostgreSqlTypeFormatter implements TypeFormatter { public boolean isBlob(String columnType) { return contains(Collections.singletonList("blob"), columnType); } + + @Override + public boolean isJsonb(String columnType) { + return contains(Collections.singletonList("jsonb"), columnType); + } } diff --git a/gen/src/main/java/com/gitee/gen/gen/sqlserver/SqlServerTypeFormatter.java b/gen/src/main/java/com/gitee/gen/gen/sqlserver/SqlServerTypeFormatter.java index c1a6627..7ff0a0d 100644 --- a/gen/src/main/java/com/gitee/gen/gen/sqlserver/SqlServerTypeFormatter.java +++ b/gen/src/main/java/com/gitee/gen/gen/sqlserver/SqlServerTypeFormatter.java @@ -69,4 +69,9 @@ public class SqlServerTypeFormatter implements TypeFormatter { public boolean isBlob(String columnType) { return contains(Arrays.asList("blob", "binary", "varbinary"), columnType); } + + @Override + public boolean isJsonb(String columnType) { + return false; + } } diff --git a/gen/src/main/resources/application.properties b/gen/src/main/resources/application.properties index 5bdf5c3..76b1357 100644 --- a/gen/src/main/resources/application.properties +++ b/gen/src/main/resources/application.properties @@ -1,10 +1,10 @@ spring.application.name=gen server.port=6969 -spring.datasource.driver-class-name=org.sqlite.JDBC -spring.datasource.url=jdbc:sqlite:gen.db -spring.datasource.username= -spring.datasource.password= +#spring.datasource.driver-class-name=org.sqlite.JDBC +#spring.datasource.url=jdbc:sqlite:gen.db +#spring.datasource.username= +#spring.datasource.password= # ========================================== # 默认使用sqlite数据库,如果要改成mysql,步骤如下: @@ -13,10 +13,10 @@ spring.datasource.password= # 3. 执行mysql.sql中的内容 # ========================================== # mysql -#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver -#spring.datasource.url=jdbc:mysql://localhost:3306/gen?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai -#spring.datasource.username=root -#spring.datasource.password=root +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.url=jdbc:mysql://localhost:3306/gen?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai +spring.datasource.username=root +spring.datasource.password=123456 mybatis.mapper-locations=classpath:mybatis/*.xml # 下划线格式转换成驼峰格式 @@ -24,6 +24,6 @@ mybatis.configuration.map-underscore-to-camel-case=true # 格式化xml代码,默认false # 开启后生成速度会稍微慢一点 -gen.format-xml=false +gen.format-xml=true logging.file.path=log -- Gitee