From f112e8a47f700b95580eb2e2011825bdb8a91a40 Mon Sep 17 00:00:00 2001 From: tanghc Date: Mon, 7 Jun 2021 15:47:22 +0800 Subject: [PATCH 01/11] 1.5.0 --- changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index e694b1d..997fd25 100644 --- a/changelog.md +++ b/changelog.md @@ -5,7 +5,7 @@ **注意:** > 从1.5.0开始前端打包后的文件不再放到`resource/public`下,而是单独放到外面`gen/view`下。 -> 理论上前端打包后的文件也属于编译后的文件,同class文件一样,不能提交到git,git只存放源码,这样在做些PR合并的时候会减少文件的冲突。 +> 理论上前端打包后的文件也属于编译后的文件,同class文件一样,不能提交到git,git只存放源码,这样在合并PR的时候会减少文件的冲突。 - 支持oracle服务名和SID连接 [pr](https://gitee.com/durcframework/code-gen/pulls/11) - 支持模板指定目录名称 by Mario Luo -- Gitee From 2eb63f9c053847a3b8c9f485ba122da9dd290dd4 Mon Sep 17 00:00:00 2001 From: tanghc Date: Mon, 7 Jun 2021 15:56:22 +0800 Subject: [PATCH 02/11] 1.5.0 --- front/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/front/README.md b/front/README.md index 6823cfb..ac13180 100644 --- a/front/README.md +++ b/front/README.md @@ -4,8 +4,8 @@ 1. 启动服务端程序 2. `cd front` -3. 执行`npm install --registry=https://registry.npm.taobao.org` -4. 执行`npm run dev`,访问`http://localhost:9528/` +3. 执行`npm install --registry=https://registry.npm.taobao.org`,(下载依赖,执行一次即可) +4. 执行`npm run dev`,访问`http://localhost:9528/`,(后续每次启动都需要执行) - 修改端口号:打开`vue.config.js`,找到`port`属性 -- Gitee From 4056ddd82964813d169055faba836429d7db546d Mon Sep 17 00:00:00 2001 From: longzhe Date: Thu, 10 Jun 2021 15:01:20 +0800 Subject: [PATCH 03/11] 2021-6-10 15:00:19 by longzhe 1. fix #I3TKB7 on mysql and oracle; --- front/public/velocity/java.json | 8 ++ .../com/gitee/gen/gen/ColumnDefinition.java | 24 +++++ .../gen/gen/mysql/MySqlColumnSelector.java | 44 ++++++-- .../gen/gen/oracle/OracleColumnSelector.java | 100 +++++++++++------- 4 files changed, 128 insertions(+), 48 deletions(-) diff --git a/front/public/velocity/java.json b/front/public/velocity/java.json index 38f64ca..28e970a 100644 --- a/front/public/velocity/java.json +++ b/front/public/velocity/java.json @@ -165,6 +165,14 @@ { "expression": "${column.comment}", "text": "字段注释" + }, + { + "expression": "${column.maxLength}", + "text": "字段长度" + }, + { + "expression": "${column.scale}", + "text": "小数位长度" } ] } diff --git a/gen/src/main/java/com/gitee/gen/gen/ColumnDefinition.java b/gen/src/main/java/com/gitee/gen/gen/ColumnDefinition.java index 04b3174..6571b0d 100644 --- a/gen/src/main/java/com/gitee/gen/gen/ColumnDefinition.java +++ b/gen/src/main/java/com/gitee/gen/gen/ColumnDefinition.java @@ -27,6 +27,30 @@ public class ColumnDefinition { * 字段注释 */ private String comment; + /** + * 字段长度 + */ + private Integer maxLength; + /** + * 小数位长度 + */ + private Integer scale; + + public void setMaxLength(Integer maxLength) { + this.maxLength = maxLength; + } + + public void setScale(Integer scale) { + this.scale = scale; + } + + public Integer getMaxLength() { + return maxLength; + } + + public Integer getScale() { + return scale; + } /** * 获得基本类型,int,float diff --git a/gen/src/main/java/com/gitee/gen/gen/mysql/MySqlColumnSelector.java b/gen/src/main/java/com/gitee/gen/gen/mysql/MySqlColumnSelector.java index b808d81..13e0dfc 100644 --- a/gen/src/main/java/com/gitee/gen/gen/mysql/MySqlColumnSelector.java +++ b/gen/src/main/java/com/gitee/gen/gen/mysql/MySqlColumnSelector.java @@ -5,6 +5,7 @@ import com.gitee.gen.gen.ColumnSelector; import com.gitee.gen.gen.GeneratorConfig; import com.gitee.gen.gen.TypeFormatter; import com.gitee.gen.util.FieldUtil; +import org.apache.commons.lang.StringUtils; import java.util.Map; import java.util.Set; @@ -17,7 +18,22 @@ public class MySqlColumnSelector extends ColumnSelector { private static final TypeFormatter TYPE_FORMATTER = new MySqlTypeFormatter(); - private static final String SHOW_SQL = "SHOW FULL COLUMNS FROM `%s`"; + private static final String SHOW_SQL = " SELECT " + + " COLUMN_NAME AS 'Field', " + + " COLUMN_DEFAULT AS 'Default', " + + " IS_NULLABLE AS 'Null', " + + " DATA_TYPE AS 'DataType', " + + " CASE DATA_TYPE " + + " WHEN 'int' THEN NUMERIC_PRECISION " + + " WHEN 'varchar' THEN CHARACTER_MAXIMUM_LENGTH " + + " END AS 'MaxLength', " + + " IFNULL(NUMERIC_SCALE,0) AS 'Scale', " + + " COLUMN_TYPE AS 'Type', " + + " COLUMN_KEY 'KEY', " + + " EXTRA AS 'Extra', " + + " COLUMN_COMMENT AS 'Comment' " + + " FROM information_schema.`COLUMNS` " + + " WHERE 1=1 AND TABLE_SCHEMA = '%s' AND TABLE_NAME = '%s' "; public MySqlColumnSelector(GeneratorConfig generatorConfig) { super(generatorConfig); @@ -28,36 +44,42 @@ public class MySqlColumnSelector extends ColumnSelector { */ @Override protected String getColumnInfoSQL(String tableName) { - return String.format(SHOW_SQL, tableName); + return String.format(SHOW_SQL, getGeneratorConfig().getDbName(), tableName); } - + /* * {FIELD=username, EXTRA=, COMMENT=用户名, COLLATION=utf8_general_ci, PRIVILEGES=select,insert,update,references, KEY=PRI, NULL=NO, DEFAULT=null, TYPE=varchar(20)} */ @Override protected ColumnDefinition buildColumnDefinition(Map rowMap){ Set columnSet = rowMap.keySet(); - + for (String columnInfo : columnSet) { rowMap.put(columnInfo.toUpperCase(), rowMap.get(columnInfo)); } - + ColumnDefinition columnDefinition = new ColumnDefinition(); columnDefinition.setColumnName(FieldUtil.convertString(rowMap.get("FIELD"))); - + boolean isIdentity = "auto_increment".equalsIgnoreCase(FieldUtil.convertString(rowMap.get("EXTRA"))); columnDefinition.setIsIdentity(isIdentity); - + boolean isPk = "PRI".equalsIgnoreCase(FieldUtil.convertString(rowMap.get("KEY"))); columnDefinition.setIsPk(isPk); - + String type = FieldUtil.convertString(rowMap.get("TYPE")); columnDefinition.setType(TYPE_FORMATTER.format(type)); - + columnDefinition.setComment(FieldUtil.convertString(rowMap.get("COMMENT"))); - + + String maxLength = FieldUtil.convertString(rowMap.get("MAXLENGTH")); + columnDefinition.setMaxLength(new Integer(StringUtils.isEmpty(maxLength) ? "0" : maxLength)); + + String scale = FieldUtil.convertString(rowMap.get("SCALE")); + columnDefinition.setScale(new Integer(StringUtils.isEmpty(scale) ? "0" : scale)); + return columnDefinition; } -} +} \ No newline at end of file diff --git a/gen/src/main/java/com/gitee/gen/gen/oracle/OracleColumnSelector.java b/gen/src/main/java/com/gitee/gen/gen/oracle/OracleColumnSelector.java index 94eb288..56a5262 100644 --- a/gen/src/main/java/com/gitee/gen/gen/oracle/OracleColumnSelector.java +++ b/gen/src/main/java/com/gitee/gen/gen/oracle/OracleColumnSelector.java @@ -17,26 +17,45 @@ public class OracleColumnSelector extends ColumnSelector { private static final TypeFormatter TYPE_FORMATTER = new OracleTypeFormatter(); - private static final String COLUMN_SQL = "select " - + " utc.column_name as FIELD,utc.data_type TYPE, utc.data_scale SCALE, utc.data_length 最大长度, " - + " CASE utc.nullable WHEN 'N' THEN '否' ELSE '是' END 可空, " - + " utc.data_default 默认值,ucc.comments COMMENTS,UTC.table_name 表名, " - + " CASE UTC.COLUMN_NAME " - + " WHEN (select " - + " col.column_name " - + " from " - + " user_constraints con,user_cons_columns col " - + " where " - + " con.constraint_name=col.constraint_name and con.constraint_type='P' " - + " and col.table_name='%s') THEN 'true' ELSE 'false' END AS KEY " - + " from " - + " user_tab_columns utc,user_col_comments ucc " - + " where " - + " utc.table_name = ucc.table_name " - + " and utc.column_name = ucc.column_name " - + " and utc.table_name = '%s' " - + " order by " - + " column_id "; +// private static final String COLUMN_SQL = "select " +// + " utc.column_name as FIELD,utc.data_type TYPE, utc.data_scale SCALE, utc.data_length 最大长度, " +// + " CASE utc.nullable WHEN 'N' THEN '否' ELSE '是' END 可空, " +// + " utc.data_default 默认值,ucc.comments COMMENTS,UTC.table_name 表名, " +// + " CASE UTC.COLUMN_NAME " +// + " WHEN (select " +// + " col.column_name " +// + " from " +// + " user_constraints con,user_cons_columns col " +// + " where " +// + " con.constraint_name=col.constraint_name and con.constraint_type='P' " +// + " and col.table_name='%s') THEN 'true' ELSE 'false' END AS KEY " +// + " from " +// + " user_tab_columns utc,user_col_comments ucc " +// + " where " +// + " utc.table_name = ucc.table_name " +// + " and utc.column_name = ucc.column_name " +// + " and utc.table_name = '%s' " +// + " order by " +// + " column_id "; + + private static final String COLUMN_SQL = " SELECT " + + " atc.COLUMN_NAME FIELD, atc.DATA_TYPE TYPE, atc.DATA_SCALE SCALE, atc.DATA_LENGTH MAXLENGTH, " + + " CASE atc.NULLABLE WHEN 'N' THEN '否' ELSE '是' END 可空, " + + " atc.DATA_DEFAULT 默认值, acc.COMMENTS COMMENTS, atc.TABLE_NAME 表名, " + + " CASE atc.COLUMN_NAME " + + " WHEN " + + " ( SELECT col.column_name FROM all_constraints con " + + " LEFT JOIN all_cons_columns col ON con.table_name = col.table_name " + + " AND con.OWNER = col.OWNER AND con.CONSTRAINT_NAME = col.CONSTRAINT_NAME " + + " WHERE con.constraint_type = 'P' " + + " AND col.table_name = '%s' AND con.OWNER = '%s' ) " + + " THEN 'true' ELSE 'false' END AS KEY " + + " FROM ALL_TAB_COLUMNS atc " + + " LEFT JOIN ALL_COL_COMMENTS acc " + + " ON acc.TABLE_NAME = atc.TABLE_NAME AND acc.COLUMN_NAME = atc.COLUMN_NAME " + + " AND acc.OWNER = atc.OWNER " + + " WHERE atc.TABLE_NAME = '%s' AND atc.OWNER = '%s' " + + " ORDER BY atc.COLUMN_ID "; public OracleColumnSelector(GeneratorConfig generatorConfig) { super(generatorConfig); @@ -44,43 +63,50 @@ public class OracleColumnSelector extends ColumnSelector { @Override protected String getColumnInfoSQL(String tableName) { - return String.format(COLUMN_SQL, tableName, tableName); + String owner = this.getGeneratorConfig().getSchemaName(); + return String.format(COLUMN_SQL, tableName, owner, tableName, owner); } - + @Override protected ColumnDefinition buildColumnDefinition(Map rowMap){ Set columnSet = rowMap.keySet(); - + for (String columnInfo : columnSet) { rowMap.put(columnInfo.toUpperCase(), rowMap.get(columnInfo)); } - + ColumnDefinition columnDefinition = new ColumnDefinition(); - + columnDefinition.setColumnName(FieldUtil.convertString(rowMap.get("FIELD"))); columnDefinition.setIsIdentity(false); - + boolean isPk = "true".equalsIgnoreCase(FieldUtil.convertString(rowMap.get("KEY"))); columnDefinition.setIsPk(isPk); - + String type = FieldUtil.convertString(rowMap.get("TYPE")); - // 如果是number + // 如果是number 就对应decimal if (StringUtils.containsIgnoreCase(type, "number")) { // 有精度则为decimal,否则是int - Object scaleCol = rowMap.get("SCALE"); - if (scaleCol == null) { - scaleCol = 0; - } - String scale = String.valueOf(scaleCol); - type = "0".equals(scale) ? "int" : "decimal"; +// Object scaleCol = rowMap.get("SCALE"); +// if (scaleCol == null) { +// scaleCol = 0; +// } +// String scale = String.valueOf(scaleCol); + type = "decimal"; } columnDefinition.setType(TYPE_FORMATTER.format(type)); - + columnDefinition.setComment(FieldUtil.convertString(rowMap.get("COMMENTS"))); + String maxLength = FieldUtil.convertString(rowMap.get("MAXLENGTH")); + columnDefinition.setMaxLength(new Integer(StringUtils.isEmpty(maxLength) ? "0" : maxLength)); + + String scale = FieldUtil.convertString(rowMap.get("SCALE")); + columnDefinition.setScale(new Integer(StringUtils.isEmpty(scale) ? "0" : scale)); + return columnDefinition; } - -} + +} \ No newline at end of file -- Gitee From 12675c940ed4fd23e873629bce571462825523e9 Mon Sep 17 00:00:00 2001 From: longzhe Date: Thu, 10 Jun 2021 15:17:41 +0800 Subject: [PATCH 04/11] 2021-6-10 15:17:36 by longzhe 1. roll back number type check in oracle; --- .../gitee/gen/gen/oracle/OracleColumnSelector.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gen/src/main/java/com/gitee/gen/gen/oracle/OracleColumnSelector.java b/gen/src/main/java/com/gitee/gen/gen/oracle/OracleColumnSelector.java index 8d36a28..f4ea515 100644 --- a/gen/src/main/java/com/gitee/gen/gen/oracle/OracleColumnSelector.java +++ b/gen/src/main/java/com/gitee/gen/gen/oracle/OracleColumnSelector.java @@ -85,15 +85,15 @@ public class OracleColumnSelector extends ColumnSelector { columnDefinition.setIsPk(isPk); String type = FieldUtil.convertString(rowMap.get("TYPE")); - // 如果是number 就对应decimal + // 如果是number if (StringUtils.containsIgnoreCase(type, "number")) { // 有精度则为decimal,否则是int -// Object scaleCol = rowMap.get("SCALE"); -// if (scaleCol == null) { -// scaleCol = 0; -// } -// String scale = String.valueOf(scaleCol); - type = "decimal"; + Object scaleCol = rowMap.get("SCALE"); + if (scaleCol == null) { + scaleCol = 0; + } + String scale = String.valueOf(scaleCol); + type = "0".equals(scale) ? "int" : "decimal"; } columnDefinition.setType(TYPE_FORMATTER.format(type)); -- Gitee From c53d916c955e1cd5ed70058bbe3af01a85075f1a Mon Sep 17 00:00:00 2001 From: tanghc Date: Fri, 11 Jun 2021 08:51:30 +0800 Subject: [PATCH 05/11] 1.5.1 --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index 997fd25..85c348f 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,9 @@ # changelog +## 1.5.1 + +- 表字段信息,增加字段长度信息(`${column.maxLength}`,`${column.scale}`),目前只支持 mysql 和 oracle. [PR](https://gitee.com/durcframework/code-gen/pulls/12) + ## 1.5.0 **注意:** -- Gitee From d853151be70459f92d6a5c1f5c1cb19e6e57b6f8 Mon Sep 17 00:00:00 2001 From: tanghc Date: Tue, 15 Jun 2021 17:39:10 +0800 Subject: [PATCH 06/11] 1.5.2 --- .../gen/gen/sqlserver/SqlServerColumnSelector.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gen/src/main/java/com/gitee/gen/gen/sqlserver/SqlServerColumnSelector.java b/gen/src/main/java/com/gitee/gen/gen/sqlserver/SqlServerColumnSelector.java index 99d8b89..1e26a08 100644 --- a/gen/src/main/java/com/gitee/gen/gen/sqlserver/SqlServerColumnSelector.java +++ b/gen/src/main/java/com/gitee/gen/gen/sqlserver/SqlServerColumnSelector.java @@ -4,6 +4,7 @@ import com.gitee.gen.gen.ColumnDefinition; import com.gitee.gen.gen.ColumnSelector; import com.gitee.gen.gen.GeneratorConfig; import com.gitee.gen.util.FieldUtil; +import org.springframework.util.StringUtils; import java.util.Map; import java.util.Set; @@ -15,6 +16,8 @@ public class SqlServerColumnSelector extends ColumnSelector { private static String TABKE_DETAIL_SQL = new StringBuilder() .append("SELECT") .append(" col.name AS column_name") + .append(" , col.max_length AS MaxLength") //sqlserver 字段长度 + .append(" , col.scale AS Scale") //sqlserver 字段精度 .append(" , bt.name AS type") .append(" , col.is_identity") .append(" , ext.value AS comment") @@ -101,6 +104,13 @@ public class SqlServerColumnSelector extends ColumnSelector { columnDefinition.setType(TYPE_FORMATTER.format(type)); columnDefinition.setComment(FieldUtil.convertString(rowMap.get("COMMENT"))); + + //sqlserver 字段长度 + String maxLength = FieldUtil.convertString(rowMap.get("MAXLENGTH")); + columnDefinition.setMaxLength(Integer.parseInt(StringUtils.isEmpty(maxLength) ? "0" : maxLength)); + //sqlserver 字段精度 + String scale = FieldUtil.convertString(rowMap.get("SCALE")); + columnDefinition.setScale(Integer.parseInt(StringUtils.isEmpty(scale) ? "0" : scale)); return columnDefinition; } -- Gitee From 0d5e83ce86b77647a1416dea1973b175ec96fb89 Mon Sep 17 00:00:00 2001 From: tanghc Date: Tue, 15 Jun 2021 17:40:13 +0800 Subject: [PATCH 07/11] 1.5.2 --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index 85c348f..8fbf8e4 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,9 @@ # changelog +## 1.5.2 + +- 支持`SqlServer`字段长度信息(`${column.maxLength}`,`${column.scale}`) + ## 1.5.1 - 表字段信息,增加字段长度信息(`${column.maxLength}`,`${column.scale}`),目前只支持 mysql 和 oracle. [PR](https://gitee.com/durcframework/code-gen/pulls/12) -- Gitee From a20419cf7eff8142279418009d582f663bb19021 Mon Sep 17 00:00:00 2001 From: tanghc Date: Tue, 15 Jun 2021 18:10:48 +0800 Subject: [PATCH 08/11] 1.5.2 --- changelog.md | 1 + .../com/gitee/gen/gen/TableDefinition.java | 5 +---- .../gitee/gen/service/GeneratorService.java | 20 +++++++++++++++++-- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/changelog.md b/changelog.md index 8fbf8e4..660c06e 100644 --- a/changelog.md +++ b/changelog.md @@ -3,6 +3,7 @@ ## 1.5.2 - 支持`SqlServer`字段长度信息(`${column.maxLength}`,`${column.scale}`) +- 修复没有主键无法生成问题 ## 1.5.1 diff --git a/gen/src/main/java/com/gitee/gen/gen/TableDefinition.java b/gen/src/main/java/com/gitee/gen/gen/TableDefinition.java index f7a3548..87000af 100644 --- a/gen/src/main/java/com/gitee/gen/gen/TableDefinition.java +++ b/gen/src/main/java/com/gitee/gen/gen/TableDefinition.java @@ -125,10 +125,7 @@ public class TableDefinition { return column; } } - if (pk != null) { - return pk; - } - throw new RuntimeException(tableName + "表未设置主键"); + return pk; } public String getTableName() { diff --git a/gen/src/main/java/com/gitee/gen/service/GeneratorService.java b/gen/src/main/java/com/gitee/gen/service/GeneratorService.java index da3dd34..519749e 100644 --- a/gen/src/main/java/com/gitee/gen/service/GeneratorService.java +++ b/gen/src/main/java/com/gitee/gen/service/GeneratorService.java @@ -3,6 +3,7 @@ package com.gitee.gen.service; import com.gitee.gen.common.GeneratorParam; import com.gitee.gen.entity.TemplateConfig; import com.gitee.gen.gen.CodeFile; +import com.gitee.gen.gen.ColumnDefinition; import com.gitee.gen.gen.GeneratorConfig; import com.gitee.gen.gen.SQLContext; import com.gitee.gen.gen.SQLService; @@ -132,14 +133,29 @@ public class GeneratorService { return ""; } VelocityContext context = new VelocityContext(); - + ColumnDefinition pkColumn = sqlContext.getTableDefinition().getPkColumn(); + if (pkColumn == null) { + pkColumn = getSysPk(); + } context.put("context", sqlContext); context.put("table", sqlContext.getTableDefinition()); - context.put("pk", sqlContext.getTableDefinition().getPkColumn()); + context.put("pk", pkColumn); context.put("columns", sqlContext.getTableDefinition().getColumnDefinitions()); context.put("csharpColumns", sqlContext.getTableDefinition().getCsharpColumnDefinitions()); return VelocityUtil.generate(context, template); } + private static ColumnDefinition getSysPk() { + ColumnDefinition sysPk = new ColumnDefinition(); + sysPk.setColumnName("id"); + sysPk.setComment("虚拟主键"); + sysPk.setScale(0); + sysPk.setType("int"); + sysPk.setMaxLength(11); + sysPk.setIsPk(true); + sysPk.setIsIdentity(false); + return sysPk; + } + } -- Gitee From 09cba68ea174a63aa247f3d75c5a40a077ff8259 Mon Sep 17 00:00:00 2001 From: tanghc Date: Tue, 15 Jun 2021 18:21:50 +0800 Subject: [PATCH 09/11] 1.5.2 --- .../gitee/gen/service/GeneratorService.java | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/gen/src/main/java/com/gitee/gen/service/GeneratorService.java b/gen/src/main/java/com/gitee/gen/service/GeneratorService.java index 519749e..4d5dafe 100644 --- a/gen/src/main/java/com/gitee/gen/service/GeneratorService.java +++ b/gen/src/main/java/com/gitee/gen/service/GeneratorService.java @@ -3,7 +3,6 @@ package com.gitee.gen.service; import com.gitee.gen.common.GeneratorParam; import com.gitee.gen.entity.TemplateConfig; import com.gitee.gen.gen.CodeFile; -import com.gitee.gen.gen.ColumnDefinition; import com.gitee.gen.gen.GeneratorConfig; import com.gitee.gen.gen.SQLContext; import com.gitee.gen.gen.SQLService; @@ -19,6 +18,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.concurrent.ExecutorService; @@ -133,9 +133,9 @@ public class GeneratorService { return ""; } VelocityContext context = new VelocityContext(); - ColumnDefinition pkColumn = sqlContext.getTableDefinition().getPkColumn(); + Object pkColumn = sqlContext.getTableDefinition().getPkColumn(); if (pkColumn == null) { - pkColumn = getSysPk(); + pkColumn = Collections.emptyMap(); } context.put("context", sqlContext); context.put("table", sqlContext.getTableDefinition()); @@ -146,16 +146,4 @@ public class GeneratorService { return VelocityUtil.generate(context, template); } - private static ColumnDefinition getSysPk() { - ColumnDefinition sysPk = new ColumnDefinition(); - sysPk.setColumnName("id"); - sysPk.setComment("虚拟主键"); - sysPk.setScale(0); - sysPk.setType("int"); - sysPk.setMaxLength(11); - sysPk.setIsPk(true); - sysPk.setIsIdentity(false); - return sysPk; - } - } -- Gitee From 46c2a9c7decec6a5bfa3474d750a21eb6802e6b5 Mon Sep 17 00:00:00 2001 From: tanghc Date: Wed, 16 Jun 2021 19:22:31 +0800 Subject: [PATCH 10/11] 1.5.2 --- readme.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/readme.md b/readme.md index ab121d0..4fad045 100644 --- a/readme.md +++ b/readme.md @@ -48,6 +48,11 @@ clone代码,然后执行`docker-build.sh`脚本 - db:数据库初始化文件 - script:辅助脚本 +## 本地开发 + +- 运行`gen`下的`com.gitee.gen.GenApplication`(SpringBoot工程) +- 运行`front`下的前端项目,详见:[readme](./front/README.md) + ## 参与贡献 欢迎贡献代码,完善功能,PR请提交到`pr`分支 -- Gitee From 70ef4e0a39e6d2514b67d410c57dfdd5aed70a18 Mon Sep 17 00:00:00 2001 From: HscongDrect Date: Fri, 25 Jun 2021 16:44:16 +0800 Subject: [PATCH 11/11] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8D=E5=89=8D?= =?UTF-8?q?=E5=90=8E=E7=AB=AFbug=E3=80=81=E6=96=B0=E5=A2=9Eauthor=E4=BD=9C?= =?UTF-8?q?=E8=80=85=E5=90=8D=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、前端:修复修改数据源时候不管什么数据库都带出oracle数据库 2、前端:新增oracle类型数据库数据库角色可以为空 3、前端:修复数据库类型为oracle数据库时候测试连接服务器字段展示undefined问题 4、前后端:新增author作者名配置,方便模板中插入作者 5、后端:修复postgresql数据库表如果没有设置主键无法获取列数组问题 --- .../views/generate/GenerateConfig/index.vue | 26 ++++++++++++++----- .../com/gitee/gen/common/GeneratorParam.java | 11 ++++++++ .../gitee/gen/entity/DatasourceConfig.java | 16 ++++++++++-- .../java/com/gitee/gen/gen/SQLContext.java | 13 ++++++++++ .../postgresql/PostgreSqlColumnSelector.java | 13 +++++----- .../gitee/gen/service/GeneratorService.java | 7 +++++ .../com/gitee/gen/service/UpgradeService.java | 13 ++++++++++ 7 files changed, 84 insertions(+), 15 deletions(-) diff --git a/front/src/views/generate/GenerateConfig/index.vue b/front/src/views/generate/GenerateConfig/index.vue index c6c0878..474ebda 100644 --- a/front/src/views/generate/GenerateConfig/index.vue +++ b/front/src/views/generate/GenerateConfig/index.vue @@ -31,6 +31,9 @@ + + + @@ -153,7 +156,7 @@ - + + + + 0 THEN 1 ELSE 0 END AS is_identity " + "FROM " + " pg_constraint " + - " INNER JOIN pg_class ON pg_constraint.conrelid = pg_class.oid " + - " INNER JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid " + - " INNER JOIN pg_type ON pg_type.oid = pg_attribute.atttypid " + - " INNER JOIN information_schema.COLUMNS C ON C.TABLE_NAME = pg_class.relname " + + " RIGHT JOIN pg_class ON pg_constraint.conrelid = pg_class.oid " + + " RIGHT JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid " + + " RIGHT JOIN pg_type ON pg_type.oid = pg_attribute.atttypid " + + " RIGHT JOIN information_schema.COLUMNS C ON C.TABLE_NAME = pg_class.relname " + " AND C.COLUMN_NAME = pg_attribute.attname " + "WHERE " + - " pg_class.relname = '%s' and pg_constraint.contype = 'p' " + + " pg_class.relname = '%s' " + +// " and pg_constraint.contype = 'p' " + " AND pg_attribute.attnum > 0"; @Override @@ -69,7 +70,7 @@ public class PostgreSqlColumnSelector extends ColumnSelector { boolean isIdentity = "1".equals(convertString(rowMap.get("IS_IDENTITY"))); columnDefinition.setIsIdentity(isIdentity); - boolean isPk = (Boolean) rowMap.get("IS_PK"); + boolean isPk = (Boolean) (rowMap.get("IS_PK") != null ? rowMap.get("IS_PK") : false); columnDefinition.setIsPk(isPk); String type = convertString(rowMap.get("TYPE")); diff --git a/gen/src/main/java/com/gitee/gen/service/GeneratorService.java b/gen/src/main/java/com/gitee/gen/service/GeneratorService.java index 4d5dafe..bd07cf6 100644 --- a/gen/src/main/java/com/gitee/gen/service/GeneratorService.java +++ b/gen/src/main/java/com/gitee/gen/service/GeneratorService.java @@ -56,6 +56,7 @@ public class GeneratorService { for (SQLContext sqlContext : contextList) { setPackageName(sqlContext, generatorParam.getPackageName()); setDelPrefix(sqlContext, generatorParam.getDelPrefix()); + setAuthor(sqlContext, generatorParam.getAuthor()); for (int tcId : generatorParam.getTemplateConfigIdList()) { TemplateConfig template = templateConfigService.getById(tcId); String folder = template.getFolder(); @@ -128,6 +129,12 @@ public class GeneratorService { } } + private void setAuthor(SQLContext sqlContext, String author) { + if (StringUtils.hasText(author)) { + sqlContext.setAuthor(author); + } + } + private String doGenerator(SQLContext sqlContext, String template) { if (template == null) { return ""; diff --git a/gen/src/main/java/com/gitee/gen/service/UpgradeService.java b/gen/src/main/java/com/gitee/gen/service/UpgradeService.java index 88c5e9c..bc3eb1a 100644 --- a/gen/src/main/java/com/gitee/gen/service/UpgradeService.java +++ b/gen/src/main/java/com/gitee/gen/service/UpgradeService.java @@ -53,6 +53,7 @@ public class UpgradeService { upgradeV1_4_0(); upgradeV1_4_12(); upgradeV1_4_17(); + upgradeV1_5_2(); } private void upgradeV1_4_17() { @@ -82,6 +83,18 @@ public class UpgradeService { runSql("update template_config set group_id=1,group_name='default' where group_id IS NULL"); } + /** + * 升级v1.5.2 + * 1、前端:修复修改数据源时候不管什么数据库都带出oracle数据库 + * 2、前端:新增oracle类型数据库 数据库角色可以为空 + * 3、前端:修复数据库类型为oracle数据库时候测试连接服务器字段展示undefined问题 + * 4、前后端:新增author作者名配置,方便模板中插入作者 + * 5、后端:修复postgresql数据库表如果没有设置主键无法获取列数组问题 + */ + private void upgradeV1_5_2() { + this.addColumn(TABLE_DATASOURCE_CONFIG, "author", "varchar(255)"); + } + private void runSql(String sql) { upgradeMapper.runSql(sql); } -- Gitee