Browse Source

使用lombok消灭getter和setter,新增是否使用java8新时间api替换老Date(默认true),更改ITypeConvert为抽象类

miemie 7 years ago
parent
commit
70ff61d835

+ 5 - 5
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/DataSourceConfig.java

@@ -136,21 +136,21 @@ public class DataSourceConfig {
         this.schemaname = schemaname;
         this.schemaname = schemaname;
     }
     }
 
 
-    public ITypeConvert getTypeConvert() {
+    public ITypeConvert getTypeConvert(boolean useJava8Time) {
         if (null == typeConvert) {
         if (null == typeConvert) {
             switch (getDbType()) {
             switch (getDbType()) {
                 case ORACLE:
                 case ORACLE:
-                    typeConvert = new OracleTypeConvert();
+                    typeConvert = new OracleTypeConvert().setUseJava8Time(useJava8Time);
                     break;
                     break;
                 case SQL_SERVER:
                 case SQL_SERVER:
-                    typeConvert = new SqlServerTypeConvert();
+                    typeConvert = new SqlServerTypeConvert().setUseJava8Time(useJava8Time);
                     break;
                     break;
                 case POSTGRE_SQL:
                 case POSTGRE_SQL:
-                    typeConvert = new PostgreSqlTypeConvert();
+                    typeConvert = new PostgreSqlTypeConvert().setUseJava8Time(useJava8Time);
                     break;
                     break;
                 default:
                 default:
                     // 默认 MYSQL
                     // 默认 MYSQL
-                    typeConvert = new MySqlTypeConvert();
+                    typeConvert = new MySqlTypeConvert().setUseJava8Time(useJava8Time);
                     break;
                     break;
             }
             }
         }
         }

+ 9 - 135
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/GlobalConfig.java

@@ -16,6 +16,8 @@
 package com.baomidou.mybatisplus.generator.config;
 package com.baomidou.mybatisplus.generator.config;
 
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;
+import lombok.Data;
+import lombok.experimental.Accessors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -25,6 +27,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
  * @author hubin
  * @author hubin
  * @since 2016-12-02
  * @since 2016-12-02
  */
  */
+@Data
+@Accessors(chain = true)
 public class GlobalConfig {
 public class GlobalConfig {
 
 
     /**
     /**
@@ -67,6 +71,11 @@ public class GlobalConfig {
      */
      */
     private boolean baseResultMap = false;
     private boolean baseResultMap = false;
 
 
+    /**
+     * 是否使用 java8 的时间类型
+     */
+    private boolean useJava8Time = true;
+
     /**
     /**
      * 开启 baseColumnList
      * 开启 baseColumnList
      */
      */
@@ -83,139 +92,4 @@ public class GlobalConfig {
      * 指定生成的主键的ID类型
      * 指定生成的主键的ID类型
      */
      */
     private IdType idType;
     private IdType idType;
-
-    public GlobalConfig setIdType(IdType idType) {
-        this.idType = idType;
-        return this;
-    }
-
-    public IdType getIdType() {
-        return idType;
-    }
-
-    public String getOutputDir() {
-        return outputDir;
-    }
-
-    public GlobalConfig setOutputDir(String outputDir) {
-        this.outputDir = outputDir;
-        return this;
-    }
-
-    public boolean isFileOverride() {
-        return fileOverride;
-    }
-
-    public GlobalConfig setFileOverride(boolean fileOverride) {
-        this.fileOverride = fileOverride;
-        return this;
-    }
-
-    public boolean isOpen() {
-        return open;
-    }
-
-    public GlobalConfig setOpen(boolean open) {
-        this.open = open;
-        return this;
-    }
-
-    public boolean isEnableCache() {
-        return enableCache;
-    }
-
-    public GlobalConfig setEnableCache(boolean enableCache) {
-        this.enableCache = enableCache;
-        return this;
-    }
-
-    public String getAuthor() {
-        return author;
-    }
-
-    public GlobalConfig setAuthor(String author) {
-        this.author = author;
-        return this;
-    }
-
-    public boolean isKotlin() {
-        return kotlin;
-    }
-
-    public GlobalConfig setKotlin(boolean kotlin) {
-        this.kotlin = kotlin;
-        return this;
-    }
-
-    public boolean isActiveRecord() {
-        return activeRecord;
-    }
-
-    public GlobalConfig setActiveRecord(boolean activeRecord) {
-        this.activeRecord = activeRecord;
-        return this;
-    }
-
-    public boolean isBaseResultMap() {
-        return baseResultMap;
-    }
-
-    public GlobalConfig setBaseResultMap(boolean baseResultMap) {
-        this.baseResultMap = baseResultMap;
-        return this;
-    }
-
-    public boolean isBaseColumnList() {
-        return baseColumnList;
-    }
-
-    public GlobalConfig setBaseColumnList(boolean baseColumnList) {
-        this.baseColumnList = baseColumnList;
-        return this;
-    }
-
-    public String getMapperName() {
-        return mapperName;
-    }
-
-    public GlobalConfig setMapperName(String mapperName) {
-        this.mapperName = mapperName;
-        return this;
-    }
-
-    public String getXmlName() {
-        return xmlName;
-    }
-
-    public GlobalConfig setXmlName(String xmlName) {
-        this.xmlName = xmlName;
-        return this;
-    }
-
-    public String getServiceName() {
-        return serviceName;
-    }
-
-    public GlobalConfig setServiceName(String serviceName) {
-        this.serviceName = serviceName;
-        return this;
-    }
-
-    public String getServiceImplName() {
-        return serviceImplName;
-    }
-
-    public GlobalConfig setServiceImplName(String serviceImplName) {
-        this.serviceImplName = serviceImplName;
-        return this;
-    }
-
-    public String getControllerName() {
-        return controllerName;
-    }
-
-    public GlobalConfig setControllerName(String controllerName) {
-        this.controllerName = controllerName;
-        return this;
-    }
 }
 }

+ 9 - 2
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/ITypeConvert.java

@@ -25,7 +25,9 @@ import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
  * @author hubin
  * @author hubin
  * @date 2017-01-20
  * @date 2017-01-20
  */
  */
-public interface ITypeConvert {
+public abstract class ITypeConvert<T extends ITypeConvert<T>> {
+
+    protected boolean useJava8Time;
 
 
     /**
     /**
      * <p>
      * <p>
@@ -35,6 +37,11 @@ public interface ITypeConvert {
      * @param fieldType 字段类型
      * @param fieldType 字段类型
      * @return
      * @return
      */
      */
-    DbColumnType processTypeConvert(String fieldType);
+    public abstract DbColumnType processTypeConvert(String fieldType);
 
 
+    @SuppressWarnings("unchecked")
+    public T setUseJava8Time(boolean useJava8Time) {
+        this.useJava8Time = useJava8Time;
+        return (T) this;
+    }
 }
 }

+ 1 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/ConfigBuilder.java

@@ -591,7 +591,7 @@ public class ConfigBuilder {
                 field.setName(results.getString(dbQuery.fieldName()));
                 field.setName(results.getString(dbQuery.fieldName()));
                 field.setType(results.getString(dbQuery.fieldType()));
                 field.setType(results.getString(dbQuery.fieldType()));
                 field.setPropertyName(strategyConfig, processName(field.getName(), strategy));
                 field.setPropertyName(strategyConfig, processName(field.getName(), strategy));
-                field.setColumnType(dataSourceConfig.getTypeConvert().processTypeConvert(field.getType()));
+                field.setColumnType(dataSourceConfig.getTypeConvert(globalConfig.isUseJava8Time()).processTypeConvert(field.getType()));
                 field.setComment(results.getString(dbQuery.fieldComment()));
                 field.setComment(results.getString(dbQuery.fieldComment()));
                 if (strategyConfig.includeSuperEntityColumns(field.getName())) {
                 if (strategyConfig.includeSuperEntityColumns(field.getName())) {
                     // 跳过公共字段
                     // 跳过公共字段

+ 1 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/converts/DB2TypeConvert.java

@@ -26,7 +26,7 @@ import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
  * @author zhanyao
  * @author zhanyao
  * @date 2018-05-16
  * @date 2018-05-16
  */
  */
-public class DB2TypeConvert implements ITypeConvert {
+public class DB2TypeConvert extends ITypeConvert<DB2TypeConvert> {
 
 
     @Override
     @Override
     public DbColumnType processTypeConvert(String fieldType) {
     public DbColumnType processTypeConvert(String fieldType) {

+ 14 - 3
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/converts/MySqlTypeConvert.java

@@ -26,7 +26,7 @@ import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
  * @author hubin
  * @author hubin
  * @date 2017-01-20
  * @date 2017-01-20
  */
  */
-public class MySqlTypeConvert implements ITypeConvert {
+public class MySqlTypeConvert extends ITypeConvert<MySqlTypeConvert> {
 
 
     @Override
     @Override
     public DbColumnType processTypeConvert(String fieldType) {
     public DbColumnType processTypeConvert(String fieldType) {
@@ -37,8 +37,6 @@ public class MySqlTypeConvert implements ITypeConvert {
             return DbColumnType.LONG;
             return DbColumnType.LONG;
         } else if (t.contains("int")) {
         } else if (t.contains("int")) {
             return DbColumnType.INTEGER;
             return DbColumnType.INTEGER;
-        } else if (t.contains("date") || t.contains("time") || t.contains("year")) {
-            return DbColumnType.DATE;
         } else if (t.contains("text")) {
         } else if (t.contains("text")) {
             return DbColumnType.STRING;
             return DbColumnType.STRING;
         } else if (t.contains("bit")) {
         } else if (t.contains("bit")) {
@@ -57,6 +55,19 @@ public class MySqlTypeConvert implements ITypeConvert {
             return DbColumnType.DOUBLE;
             return DbColumnType.DOUBLE;
         } else if (t.contains("json") || t.contains("enum")) {
         } else if (t.contains("json") || t.contains("enum")) {
             return DbColumnType.STRING;
             return DbColumnType.STRING;
+        } else if (t.contains("date") || t.contains("time") || t.contains("year")) {
+            if (useJava8Time) {
+                switch (t) {
+                    case "date":
+                        return DbColumnType.LOCAL_DATE;
+                    case "time":
+                        return DbColumnType.LOCAL_TIME;
+                    default:
+                        return DbColumnType.LOCAL_DATE_TIME;
+                }
+            } else {
+                return DbColumnType.DATE;
+            }
         }
         }
         return DbColumnType.STRING;
         return DbColumnType.STRING;
     }
     }

+ 1 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/converts/OracleTypeConvert.java

@@ -26,7 +26,7 @@ import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
  * @author hubin
  * @author hubin
  * @date 2017-01-20
  * @date 2017-01-20
  */
  */
-public class OracleTypeConvert implements ITypeConvert {
+public class OracleTypeConvert extends ITypeConvert<OracleTypeConvert> {
 
 
     @Override
     @Override
     public DbColumnType processTypeConvert(String fieldType) {
     public DbColumnType processTypeConvert(String fieldType) {

+ 1 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/converts/PostgreSqlTypeConvert.java

@@ -26,7 +26,7 @@ import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
  * @author hubin
  * @author hubin
  * @date 2017-01-20
  * @date 2017-01-20
  */
  */
-public class PostgreSqlTypeConvert implements ITypeConvert {
+public class PostgreSqlTypeConvert extends ITypeConvert<PostgreSqlTypeConvert> {
 
 
     @Override
     @Override
     public DbColumnType processTypeConvert(String fieldType) {
     public DbColumnType processTypeConvert(String fieldType) {

+ 1 - 1
mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/converts/SqlServerTypeConvert.java

@@ -26,7 +26,7 @@ import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
  * @author hubin
  * @author hubin
  * @date 2017-01-20
  * @date 2017-01-20
  */
  */
-public class SqlServerTypeConvert implements ITypeConvert {
+public class SqlServerTypeConvert extends ITypeConvert<SqlServerTypeConvert> {
 
 
     @Override
     @Override
     public DbColumnType processTypeConvert(String fieldType) {
     public DbColumnType processTypeConvert(String fieldType) {