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 7439aa4da46c637be8d4043a773d33cce8940aad..59b31b521007c1874c18aad05aef1bd3729d5fc1 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 3c30b1af24846b6664c709a0a88788d51215e1e8..57af770024ad6edf464f7b0ae5dc1acedc0b58c4 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 830fbbb817f0f313a7f28246284cf4a1c30c7159..89958067e3e130f52aff9b1d3518f1b40b10c103 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 291feb380efb84394d19861bf5b77b8d3358a8e0..eb32e3af0d26927a6f994ccf2ca2081cc0c6bbd9 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 d2989c59245fc9f43e8d72341d6cc4a594018a2e..c504befd0c2bd1dfff56c1f70d05a776646e33e0 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 25aadef3aec6687f73a7726e10c7424da21abc13..2516ee2407415333c606995f20ad39f0545fff73 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 5499782a2de1cdbb7fae3bae7e9fe3d5bdcb2c74..9f6939ecc2b1711d767f09fd9f34b01b8b1932c2 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 c1a66274755accfaa6c1fa2f209ca7257329f621..7ff0a0d5fbac2373bb0aae8849034779f1e77959 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 5bdf5c3493cef7bf3afda54634ecdee69c111d16..76b13573042b9753bdceff858fd7b913f5bf02ef 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