|
@@ -15,14 +15,28 @@
|
|
*/
|
|
*/
|
|
package com.baomidou.mybatisplus.generator.config.converts;
|
|
package com.baomidou.mybatisplus.generator.config.converts;
|
|
|
|
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.converts.TypeConverts.contains;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.converts.TypeConverts.containsAny;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.BIG_DECIMAL;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.BOOLEAN;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.BYTE_ARRAY;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.DATE;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.DATE_SQL;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.DOUBLE;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.FLOAT;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.INTEGER;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.LOCAL_DATE;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.LOCAL_DATE_TIME;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.LOCAL_TIME;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.LONG;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.STRING;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.TIME;
|
|
|
|
+import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.TIMESTAMP;
|
|
|
|
+
|
|
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
|
|
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
|
|
import com.baomidou.mybatisplus.generator.config.ITypeConvert;
|
|
import com.baomidou.mybatisplus.generator.config.ITypeConvert;
|
|
import com.baomidou.mybatisplus.generator.config.rules.IColumnType;
|
|
import com.baomidou.mybatisplus.generator.config.rules.IColumnType;
|
|
|
|
|
|
-import static com.baomidou.mybatisplus.generator.config.converts.TypeConverts.contains;
|
|
|
|
-import static com.baomidou.mybatisplus.generator.config.converts.TypeConverts.containsAny;
|
|
|
|
-import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.*;
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* SQLServer 字段类型转换
|
|
* SQLServer 字段类型转换
|
|
*
|
|
*
|
|
@@ -30,18 +44,19 @@ import static com.baomidou.mybatisplus.generator.config.rules.DbColumnType.*;
|
|
* @since 2017-01-20
|
|
* @since 2017-01-20
|
|
*/
|
|
*/
|
|
public class SqlServerTypeConvert implements ITypeConvert {
|
|
public class SqlServerTypeConvert implements ITypeConvert {
|
|
|
|
+
|
|
public static final SqlServerTypeConvert INSTANCE = new SqlServerTypeConvert();
|
|
public static final SqlServerTypeConvert INSTANCE = new SqlServerTypeConvert();
|
|
|
|
|
|
/**
|
|
/**
|
|
* @inheritDoc
|
|
* @inheritDoc
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
- public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
|
|
|
|
|
|
+ public IColumnType processTypeConvert(GlobalConfig config, String fieldType) {
|
|
return TypeConverts.use(fieldType)
|
|
return TypeConverts.use(fieldType)
|
|
.test(containsAny("char", "xml", "text").then(STRING))
|
|
.test(containsAny("char", "xml", "text").then(STRING))
|
|
.test(contains("bigint").then(LONG))
|
|
.test(contains("bigint").then(LONG))
|
|
.test(contains("int").then(INTEGER))
|
|
.test(contains("int").then(INTEGER))
|
|
- .test(containsAny("date", "time").then(STRING))
|
|
|
|
|
|
+ .test(containsAny("date", "time").then(t -> toDateType(config, t)))
|
|
.test(contains("bit").then(BOOLEAN))
|
|
.test(contains("bit").then(BOOLEAN))
|
|
.test(containsAny("decimal", "numeric").then(DOUBLE))
|
|
.test(containsAny("decimal", "numeric").then(DOUBLE))
|
|
.test(contains("money").then(BIG_DECIMAL))
|
|
.test(contains("money").then(BIG_DECIMAL))
|
|
@@ -50,4 +65,35 @@ public class SqlServerTypeConvert implements ITypeConvert {
|
|
.or(STRING);
|
|
.or(STRING);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 转换为日期类型
|
|
|
|
+ *
|
|
|
|
+ * @param config 配置信息
|
|
|
|
+ * @param type 类型
|
|
|
|
+ * @return 返回对应的列类型
|
|
|
|
+ */
|
|
|
|
+ public static IColumnType toDateType(GlobalConfig config, String type) {
|
|
|
|
+ switch (config.getDateType()) {
|
|
|
|
+ case SQL_PACK:
|
|
|
|
+ switch (type) {
|
|
|
|
+ case "date":
|
|
|
|
+ return DATE_SQL;
|
|
|
|
+ case "time":
|
|
|
|
+ return TIME;
|
|
|
|
+ default:
|
|
|
|
+ return TIMESTAMP;
|
|
|
|
+ }
|
|
|
|
+ case TIME_PACK:
|
|
|
|
+ switch (type) {
|
|
|
|
+ case "date":
|
|
|
|
+ return LOCAL_DATE;
|
|
|
|
+ case "time":
|
|
|
|
+ return LOCAL_TIME;
|
|
|
|
+ default:
|
|
|
|
+ return LOCAL_DATE_TIME;
|
|
|
|
+ }
|
|
|
|
+ default:
|
|
|
|
+ return DATE;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|