hubin 7 роки тому
батько
коміт
85bf680b2f

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

@@ -111,10 +111,10 @@ public class DataSourceConfig {
                 dbType = DbType.ORACLE;
                 dbType = DbType.ORACLE;
             } else if (driverName.contains("postgresql")) {
             } else if (driverName.contains("postgresql")) {
                 dbType = DbType.POSTGRE_SQL;
                 dbType = DbType.POSTGRE_SQL;
-            } else if (driverName.contains("mariadb")) {
-                dbType = DbType.MARIADB;
             } else if (driverName.contains("db2")) {
             } else if (driverName.contains("db2")) {
                 dbType = DbType.DB2;
                 dbType = DbType.DB2;
+            } else if (driverName.contains("mariadb")) {
+                dbType = DbType.MARIADB;
             } else {
             } else {
                 throw new MybatisPlusException("Unknown type of database!");
                 throw new MybatisPlusException("Unknown type of database!");
             }
             }
@@ -134,12 +134,12 @@ public class DataSourceConfig {
                 case POSTGRE_SQL:
                 case POSTGRE_SQL:
                     typeConvert = new PostgreSqlTypeConvert();
                     typeConvert = new PostgreSqlTypeConvert();
                     break;
                     break;
-                case MARIADB:
-                    typeConvert = new MySqlTypeConvert();
-                    break;
                 case DB2:
                 case DB2:
                     typeConvert = new DB2TypeConvert();
                     typeConvert = new DB2TypeConvert();
                     break;
                     break;
+                case MARIADB:
+                    typeConvert = new MySqlTypeConvert();
+                    break;
                 default:
                 default:
                     // 默认 MYSQL
                     // 默认 MYSQL
                     typeConvert = new MySqlTypeConvert();
                     typeConvert = new MySqlTypeConvert();

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

@@ -567,7 +567,12 @@ public class ConfigBuilder {
                 TableField field = new TableField();
                 TableField field = new TableField();
                 String key = results.getString(dbQuery.fieldKey());
                 String key = results.getString(dbQuery.fieldKey());
                 // 避免多重主键设置,目前只取第一个找到ID,并放到list中的索引为0的位置
                 // 避免多重主键设置,目前只取第一个找到ID,并放到list中的索引为0的位置
-                boolean isId = StringUtils.isNotEmpty(key) && "PRI".equals(key.toUpperCase());
+                boolean isId;
+                if (DbType.DB2 == dbQuery.dbType()) {
+                    isId = StringUtils.isNotEmpty(key) && "1".equals(key);
+                } else {
+                    isId = StringUtils.isNotEmpty(key) && "PRI".equals(key.toUpperCase());
+                }
                 // 处理ID
                 // 处理ID
                 if (isId && !haveId) {
                 if (isId && !haveId) {
                     field.setKeyFlag(true);
                     field.setKeyFlag(true);

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

@@ -25,52 +25,42 @@ import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
  * </p>
  * </p>
  *
  *
  * @author zhanyao
  * @author zhanyao
- * @date 2018-05-16
+ * @since 2018-05-16
  */
  */
 public class DB2TypeConvert implements ITypeConvert {
 public class DB2TypeConvert implements ITypeConvert {
 
 
     @Override
     @Override
     public DbColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
     public DbColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
         String t = fieldType.toLowerCase();
         String t = fieldType.toLowerCase();
-        if (t.contains("char")) {
+        if (t.contains("char") || t.contains("text")) {
             return DbColumnType.STRING;
             return DbColumnType.STRING;
-        } else if (t.contains("date") || t.contains("time")) {
-            switch (globalConfig.getDateType()) {
-                case ONLY_DATE:
-                    return DbColumnType.DATE;
-                case SQL_PACK:
-                    switch (t) {
-                        case "time":
-                            return DbColumnType.TIME;
-                        case "date":
-                            return DbColumnType.DATE_SQL;
-                        case "timestamp":
-                            return DbColumnType.TIMESTAMP;
-                    }
-                case TIME_PACK:
-                    switch (t) {
-                        case "time":
-                            return DbColumnType.LOCAL_TIME;
-                        case "date":
-                            return DbColumnType.LOCAL_DATE;
-                        case "timestamp":
-                            return DbColumnType.LOCAL_DATE_TIME;
-                    }
-            }
-        } else if (t.contains("float")) {//todo float类型真多,心累,慢慢来
-            return DbColumnType.FLOAT;
-        } else if (t.contains("double")) {
-            return DbColumnType.DOUBLE;
+        } else if (t.contains("bigint")) {
+            return DbColumnType.LONG;
+        } else if (t.contains("smallint")) {
+            return DbColumnType.BASE_SHORT;
+        } else if (t.contains("int")) {
+            return DbColumnType.INTEGER;
+        } else if (t.contains("date") || t.contains("time")
+            || t.contains("year") || t.contains("timestamp")) {
+            return DbColumnType.DATE;
+        } else if (t.contains("text")) {
+            return DbColumnType.STRING;
+        } else if (t.contains("bit")) {
+            return DbColumnType.BOOLEAN;
+        } else if (t.contains("decimal")) {
+            return DbColumnType.BIG_DECIMAL;
         } else if (t.contains("clob")) {
         } else if (t.contains("clob")) {
             return DbColumnType.CLOB;
             return DbColumnType.CLOB;
         } else if (t.contains("blob")) {
         } else if (t.contains("blob")) {
-            return DbColumnType.OBJECT;
+            return DbColumnType.BLOB;
         } else if (t.contains("binary")) {
         } else if (t.contains("binary")) {
             return DbColumnType.BYTE_ARRAY;
             return DbColumnType.BYTE_ARRAY;
-        } else if (t.contains("raw")) {
-            return DbColumnType.BYTE_ARRAY;
-        } else if (t.contains("boolean")) {
-            return DbColumnType.BOOLEAN;
+        } else if (t.contains("float")) {
+            return DbColumnType.FLOAT;
+        } else if (t.contains("double")) {
+            return DbColumnType.DOUBLE;
+        } else if (t.contains("json") || t.contains("enum")) {
+            return DbColumnType.STRING;
         }
         }
         return DbColumnType.STRING;
         return DbColumnType.STRING;
     }
     }