diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/dialect/JdbcDialect.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/dialect/JdbcDialect.java index 7e1a4e7b..36bcc7df 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/dialect/JdbcDialect.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/dialect/JdbcDialect.java @@ -38,7 +38,10 @@ public abstract class JdbcDialect implements IDialect { for (int i = 1; i <= columnCount; i++) { Column column = new Column(); column.setName(columnMetaData.getColumnName(i)); - column.setPropertyType(columnMetaData.getColumnClassName(i)); + + String jdbcType = columnMetaData.getColumnClassName(i); + column.setPropertyType(JdbcTypeMapping.getType(jdbcType)); + column.setAutoIncrement(columnMetaData.isAutoIncrement(i)); //注释 diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/dialect/JdbcTypeMapping.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/dialect/JdbcTypeMapping.java new file mode 100644 index 00000000..35d3d1f8 --- /dev/null +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/dialect/JdbcTypeMapping.java @@ -0,0 +1,28 @@ +package com.mybatisflex.codegen.dialect; + +import com.mybatisflex.core.util.StringUtil; + +import java.util.HashMap; +import java.util.Map; + +public class JdbcTypeMapping { + + private static Map mapping = new HashMap<>(); + + static { + mapping.put("[B", "byte[]"); + } + + public void registerMapping(Class from, Class to) { + mapping.put(from.getName(), to.getName()); + } + + public void registerMapping(String from, String to) { + mapping.put(from, to); + } + + static String getType(String jdbcType) { + String registered = mapping.get(jdbcType); + return StringUtil.isNotBlank(registered) ? registered : jdbcType; + } +} diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Column.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Column.java index 28b29876..9aee7934 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Column.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/entity/Column.java @@ -203,7 +203,10 @@ public class Column { List importClasses = new ArrayList<>(); //lang 包不需要显式导入 - if (!propertyType.startsWith("java.lang.")) { + if (!propertyType.startsWith("java.lang.") + && !"byte[]".equals(propertyType) + && !"Byte[]".equals(propertyType) + ) { importClasses.add(propertyType); }