瀏覽代碼

支持DB2代码自动生成

yao 7 年之前
父節點
當前提交
97c9fef994

+ 4 - 0
mybatis-plus-generate/src/main/java/com/baomidou/mybatisplus/generator/config/DataSourceConfig.java

@@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
 import com.baomidou.mybatisplus.generator.config.converts.OracleTypeConvert;
 import com.baomidou.mybatisplus.generator.config.converts.PostgreSqlTypeConvert;
 import com.baomidou.mybatisplus.generator.config.converts.SqlServerTypeConvert;
+import com.baomidou.mybatisplus.generator.config.querys.DB2Query;
 import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
 import com.baomidou.mybatisplus.generator.config.querys.OracleQuery;
 import com.baomidou.mybatisplus.generator.config.querys.PostgreSqlQuery;
@@ -85,6 +86,9 @@ public class DataSourceConfig {
                 case POSTGRE_SQL:
                     dbQuery = new PostgreSqlQuery();
                     break;
+                case DB2:
+                	dbQuery = new DB2Query();
+                	break;
                 default:
                     // 默认 MYSQL
                     dbQuery = new MySqlQuery();

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

@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2011-2016, hubin (jobob@qq.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.baomidou.mybatisplus.generator.config.converts;
+
+import com.baomidou.mybatisplus.generator.config.ITypeConvert;
+import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
+
+/**
+ * <p>
+ * DB2 字段类型转换
+ * </p>
+ *
+ * @author zhanyao
+ * @date 2018-05-16
+ */
+public class DB2TypeConvert implements ITypeConvert {
+
+    @Override
+    public DbColumnType processTypeConvert(String fieldType) {
+        String t = fieldType.toUpperCase();
+        if (t.contains("CHAR")) {
+            return DbColumnType.STRING;
+        } else if (t.contains("DATE") || t.contains("TIMESTAMP")) {
+            return DbColumnType.DATE;
+        } else if (t.contains("NUMBER")) {
+            if (t.matches("NUMBER\\(+\\d\\)")) {
+                return DbColumnType.INTEGER;
+            } else if (t.matches("NUMBER\\(+\\d{2}+\\)")) {
+                return DbColumnType.LONG;
+            }
+            return DbColumnType.DOUBLE;
+        } else if (t.contains("FLOAT")) {
+            return DbColumnType.FLOAT;
+        } else if (t.contains("clob")) {
+            return DbColumnType.CLOB;
+        } else if (t.contains("BLOB")) {
+            return DbColumnType.OBJECT;
+        } else if (t.contains("binary")) {
+            return DbColumnType.BYTE_ARRAY;
+        } else if (t.contains("RAW")) {
+            return DbColumnType.BYTE_ARRAY;
+        }
+        return DbColumnType.STRING;
+    }
+
+}

+ 85 - 0
mybatis-plus-generate/src/main/java/com/baomidou/mybatisplus/generator/config/querys/DB2Query.java

@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2011-2020, hubin (jobob@qq.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.baomidou.mybatisplus.generator.config.querys;
+
+import com.baomidou.mybatisplus.generator.config.rules.DbType;
+
+/**
+ * <p>
+ * DB2 表数据查询
+ * </p>
+ *
+ * @author zhanyao
+ * @since 2018-05-16
+ */
+public class DB2Query extends AbstractDbQuery {
+
+
+    @Override
+    public DbType dbType() {
+        return DbType.DB2;
+    }
+
+
+    @Override
+    public String tablesSql() {
+        //return "SELECT * FROM SYSCAT.TABLES";
+        return "SELECT * FROM SYSCAT.TABLES where tabschema =current schema";
+    }
+
+
+    @Override
+    public String tableFieldsSql() {
+        return "select *  from syscat.columns where tabschema =current schema and tabname = '%s'";
+    }
+
+
+    @Override
+    public String tableName() {
+        return "TABNAME";
+    }
+
+
+    @Override
+    public String tableComment() {
+        return "REMARKS";
+    }
+
+
+    @Override
+    public String fieldName() {
+        return "COLNAME";
+    }
+
+
+    @Override
+    public String fieldType() {
+        return "TYPENAME";
+    }
+
+
+    @Override
+    public String fieldComment() {
+        return "REMARKS";
+    }
+
+
+    @Override
+    public String fieldKey() {
+        return "IDENTITY";
+    }
+
+}