From 6906f83ecfda088b42e3f0c3f76e632b2bfaf64c Mon Sep 17 00:00:00 2001 From: SanLi <2689170096@qq.com> Date: Wed, 26 Aug 2020 15:31:20 +0800 Subject: [PATCH] =?UTF-8?q?:recycle:=20=E9=87=8D=E6=9E=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/metadata/model/ColumnModel.java | 10 +++- .../screw/core/process/DataModelProcess.java | 4 ++ .../query/mariadb/MariaDbDataBaseQuery.java | 11 ++-- .../core/query/mysql/MySqlDataBaseQuery.java | 11 ++-- .../postgresql/PostgreSqlDataBaseQuery.java | 53 ++++++++++++++++++- .../freemarker/documentation_html.ftl | 2 +- .../template/freemarker/documentation_md.ftl | 2 +- .../freemarker/documentation_word.ftl | 2 +- .../template/velocity/documentation_html.vm | 2 +- .../template/velocity/documentation_md.vm | 2 +- .../template/velocity/documentation_word.vm | 2 +- .../pojo/process/PojoModelProcess.java | 14 ++--- 12 files changed, 88 insertions(+), 27 deletions(-) diff --git a/screw-core/src/main/java/cn/smallbun/screw/core/metadata/model/ColumnModel.java b/screw-core/src/main/java/cn/smallbun/screw/core/metadata/model/ColumnModel.java index efa11b6..5695075 100644 --- a/screw-core/src/main/java/cn/smallbun/screw/core/metadata/model/ColumnModel.java +++ b/screw-core/src/main/java/cn/smallbun/screw/core/metadata/model/ColumnModel.java @@ -58,9 +58,17 @@ public class ColumnModel implements Serializable { */ private String columnName; /** - * SQL 数据类型 名称 + * SQL 数据类型带长度 */ private String columnType; + /** + * SQL 数据类型 名称 + */ + private String typeName; + /** + * 列长度 + */ + private String columnLength; /** * 小数位 */ diff --git a/screw-core/src/main/java/cn/smallbun/screw/core/process/DataModelProcess.java b/screw-core/src/main/java/cn/smallbun/screw/core/process/DataModelProcess.java index 647baff..a7206d2 100644 --- a/screw-core/src/main/java/cn/smallbun/screw/core/process/DataModelProcess.java +++ b/screw-core/src/main/java/cn/smallbun/screw/core/process/DataModelProcess.java @@ -151,6 +151,10 @@ public class DataModelProcess extends AbstractProcess { columnModel.setColumnName(column.getColumnName()); //类型 columnModel.setColumnType(column.getColumnType()); + //字段名称 + columnModel.setTypeName(column.getTypeName()); + //长度 + columnModel.setColumnLength(column.getColumnLength()); //小数位 columnModel.setDecimalDigits( StringUtils.defaultString(column.getDecimalDigits(), ZERO_DECIMAL_DIGITS)); diff --git a/screw-core/src/main/java/cn/smallbun/screw/core/query/mariadb/MariaDbDataBaseQuery.java b/screw-core/src/main/java/cn/smallbun/screw/core/query/mariadb/MariaDbDataBaseQuery.java index ff80d00..ac384c0 100644 --- a/screw-core/src/main/java/cn/smallbun/screw/core/query/mariadb/MariaDbDataBaseQuery.java +++ b/screw-core/src/main/java/cn/smallbun/screw/core/query/mariadb/MariaDbDataBaseQuery.java @@ -114,9 +114,9 @@ public class MariaDbDataBaseQuery extends AbstractDatabaseQuery { //查询全部 if (table.equals(PERCENT_SIGN)) { //获取全部表列信息SQL - String sql = "SELECT A.TABLE_NAME, A.COLUMN_NAME, A.COLUMN_TYPE, replace(substring(a.COLUMN_TYPE, LOCATE('(', a.COLUMN_TYPE) + 1), ')', '') COLUMN_LENGTH FROM INFORMATION_SCHEMA.COLUMNS A WHERE A.TABLE_SCHEMA = '%s' ORDER BY A.COLUMN_NAME"; + String sql = "SELECT A.TABLE_NAME, A.COLUMN_NAME, A.COLUMN_TYPE, case when LOCATE('(', A.COLUMN_TYPE) > 0 then replace(substring(A.COLUMN_TYPE, LOCATE('(', A.COLUMN_TYPE) + 1), ')', '') else null end COLUMN_LENGTH FROM INFORMATION_SCHEMA.COLUMNS A WHERE A.TABLE_SCHEMA = '%s'"; PreparedStatement statement = prepareStatement( - String.format(sql, getDataBase())); + String.format(sql, getDataBase().getDatabase())); resultSet = statement.executeQuery(); int fetchSize = 4284; if (resultSet.getFetchSize() < fetchSize) { @@ -126,9 +126,9 @@ public class MariaDbDataBaseQuery extends AbstractDatabaseQuery { //单表查询 else { //获取表列信息SQL 查询表名、列名、说明、数据类型 - String sql = "SELECT A.TABLE_NAME, A.COLUMN_NAME, A.COLUMN_TYPE, replace(substring(a.COLUMN_TYPE, LOCATE('(', a.COLUMN_TYPE) + 1), ')', '') COLUMN_LENGTH FROM INFORMATION_SCHEMA.COLUMNS A WHERE A.TABLE_SCHEMA = '%s' and A.TABLE_NAME = '%s' ORDER BY A.COLUMN_NAME"; - resultSet = prepareStatement(String.format(sql, getDataBase(), table)) - .executeQuery(); + String sql = "SELECT A.TABLE_NAME, A.COLUMN_NAME, A.COLUMN_TYPE, case when LOCATE('(', A.COLUMN_TYPE) > 0 then replace(substring(A.COLUMN_TYPE, LOCATE('(', A.COLUMN_TYPE) + 1), ')', '') else null end COLUMN_LENGTH FROM INFORMATION_SCHEMA.COLUMNS A WHERE A.TABLE_SCHEMA = '%s' and A.TABLE_NAME = '%s'"; + resultSet = prepareStatement( + String.format(sql, getDataBase().getDatabase(), table)).executeQuery(); } List inquires = Mapping.convertList(resultSet, MariadbColumnModel.class); @@ -146,7 +146,6 @@ public class MariaDbDataBaseQuery extends AbstractDatabaseQuery { && i.getTableName().equals(j.getTableName())) { //放入列类型 i.setColumnType(j.getColumnType()); - i.setRemarks(j.getRemarks()); i.setColumnLength(j.getColumnLength()); } }); diff --git a/screw-core/src/main/java/cn/smallbun/screw/core/query/mysql/MySqlDataBaseQuery.java b/screw-core/src/main/java/cn/smallbun/screw/core/query/mysql/MySqlDataBaseQuery.java index 923b3f9..672bd27 100644 --- a/screw-core/src/main/java/cn/smallbun/screw/core/query/mysql/MySqlDataBaseQuery.java +++ b/screw-core/src/main/java/cn/smallbun/screw/core/query/mysql/MySqlDataBaseQuery.java @@ -119,9 +119,9 @@ public class MySqlDataBaseQuery extends AbstractDatabaseQuery { //查询全部 if (table.equals(PERCENT_SIGN)) { //获取全部表列信息SQL - String sql = "SELECT A.TABLE_NAME, A.COLUMN_NAME, A.COLUMN_TYPE, replace(substring(a.COLUMN_TYPE, LOCATE('(', a.COLUMN_TYPE) + 1), ')', '') COLUMN_LENGTH FROM INFORMATION_SCHEMA.COLUMNS A WHERE A.TABLE_SCHEMA = '%s' ORDER BY A.COLUMN_NAME"; + String sql = "SELECT A.TABLE_NAME, A.COLUMN_NAME, A.COLUMN_TYPE, case when LOCATE('(', A.COLUMN_TYPE) > 0 then replace(substring(A.COLUMN_TYPE, LOCATE('(', A.COLUMN_TYPE) + 1), ')', '') else null end COLUMN_LENGTH FROM INFORMATION_SCHEMA.COLUMNS A WHERE A.TABLE_SCHEMA = '%s'"; PreparedStatement statement = prepareStatement( - String.format(sql, getDataBase())); + String.format(sql, getDataBase().getDatabase())); resultSet = statement.executeQuery(); int fetchSize = 4284; if (resultSet.getFetchSize() < fetchSize) { @@ -131,9 +131,9 @@ public class MySqlDataBaseQuery extends AbstractDatabaseQuery { //单表查询 else { //获取表列信息SQL 查询表名、列名、说明、数据类型 - String sql = "SELECT A.TABLE_NAME, A.COLUMN_NAME, A.COLUMN_TYPE, replace(substring(a.COLUMN_TYPE, LOCATE('(', a.COLUMN_TYPE) + 1), ')', '') COLUMN_LENGTH FROM INFORMATION_SCHEMA.COLUMNS A WHERE A.TABLE_SCHEMA = '%s' and A.TABLE_NAME = '%s' ORDER BY A.COLUMN_NAME"; - resultSet = prepareStatement(String.format(sql, getDataBase(), table)) - .executeQuery(); + String sql = "SELECT A.TABLE_NAME, A.COLUMN_NAME, A.COLUMN_TYPE, case when LOCATE('(', A.COLUMN_TYPE) > 0 then replace(substring(A.COLUMN_TYPE, LOCATE('(', A.COLUMN_TYPE) + 1), ')', '') else null end COLUMN_LENGTH FROM INFORMATION_SCHEMA.COLUMNS A WHERE A.TABLE_SCHEMA = '%s' and A.TABLE_NAME = '%s'"; + resultSet = prepareStatement( + String.format(sql, getDataBase().getDatabase(), table)).executeQuery(); } List inquires = Mapping.convertList(resultSet, MySqlColumnModel.class); @@ -151,7 +151,6 @@ public class MySqlDataBaseQuery extends AbstractDatabaseQuery { && i.getTableName().equals(j.getTableName())) { //放入列类型 i.setColumnType(j.getColumnType()); - i.setRemarks(j.getRemarks()); i.setColumnLength(j.getColumnLength()); } }); diff --git a/screw-core/src/main/java/cn/smallbun/screw/core/query/postgresql/PostgreSqlDataBaseQuery.java b/screw-core/src/main/java/cn/smallbun/screw/core/query/postgresql/PostgreSqlDataBaseQuery.java index f410ebe..ad3ab66 100644 --- a/screw-core/src/main/java/cn/smallbun/screw/core/query/postgresql/PostgreSqlDataBaseQuery.java +++ b/screw-core/src/main/java/cn/smallbun/screw/core/query/postgresql/PostgreSqlDataBaseQuery.java @@ -27,14 +27,18 @@ import cn.smallbun.screw.core.query.postgresql.model.PostgreSqlColumnModel; import cn.smallbun.screw.core.query.postgresql.model.PostgreSqlDatabaseModel; import cn.smallbun.screw.core.query.postgresql.model.PostgreSqlPrimaryKeyModel; import cn.smallbun.screw.core.query.postgresql.model.PostgreSqlTableModel; +import cn.smallbun.screw.core.query.sqlservice.model.SqlServerColumnModel; import cn.smallbun.screw.core.util.Assert; +import cn.smallbun.screw.core.util.CollectionUtils; import cn.smallbun.screw.core.util.ExceptionUtils; import cn.smallbun.screw.core.util.JdbcUtils; import javax.sql.DataSource; +import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; +import java.util.stream.Collectors; import static cn.smallbun.screw.core.constant.DefaultConstants.PERCENT_SIGN; @@ -104,7 +108,54 @@ public class PostgreSqlDataBaseQuery extends AbstractDatabaseQuery { //查询 resultSet = getMetaData().getColumns(getCatalog(), getSchema(), table, PERCENT_SIGN); //映射 - return Mapping.convertList(resultSet, PostgreSqlColumnModel.class); + List list = Mapping.convertList(resultSet, + PostgreSqlColumnModel.class); + //这里处理是为了如果是查询全部列呢?所以处理并获取唯一表名 + List tableNames = list.stream().map(PostgreSqlColumnModel::getTableName) + .collect(Collectors.toList()).stream().distinct().collect(Collectors.toList()); + if (CollectionUtils.isEmpty(columnsCaching)) { + //查询全部 + if (table.equals(PERCENT_SIGN)) { + //获取全部表列信息SQL + String sql = "select TABLE_NAME, TABLE_SCHEM, COLUMN_NAME, Length as COLUMN_LENGTH, concat(udt_name, case when Length isnull then '' else concat('(', concat(Length, ')')) end) as COLUMN_TYPE from(select table_schema as TABLE_SCHEM, column_name as COLUMN_NAME, table_name as TABLE_NAME, udt_name as udt_name, case when coalesce(character_maximum_length, numeric_precision, -1) = -1 then null else coalesce(character_maximum_length, numeric_precision, -1) end as Length from information_schema.columns a where table_schema = '%s' and table_catalog = '%s') t"; + PreparedStatement statement = prepareStatement( + String.format(sql, getSchema(), getDataBase().getDatabase())); + resultSet = statement.executeQuery(); + int fetchSize = 4284; + if (resultSet.getFetchSize() < fetchSize) { + resultSet.setFetchSize(fetchSize); + } + } + //单表查询 + else { + //获取表列信息SQL 查询表名、列名、说明、数据类型 + String sql = "select TABLE_NAME, TABLE_SCHEM, COLUMN_NAME, Length as COLUMN_LENGTH, concat(udt_name, case when Length isnull then '' else concat('(', concat(Length, ')')) end) as COLUMN_TYPE from(select table_schema as TABLE_SCHEM, column_name as COLUMN_NAME, table_name as TABLE_NAME, udt_name as udt_name, case when coalesce(character_maximum_length, numeric_precision, -1) = -1 then null else coalesce(character_maximum_length, numeric_precision, -1) end as Length from information_schema.columns a where a.table_name = '%s' and table_schema = '%s' and table_catalog = '%s') t"; + resultSet = prepareStatement( + String.format(sql, table, getSchema(), getDataBase().getDatabase())) + .executeQuery(); + } + List inquires = Mapping.convertList(resultSet, + SqlServerColumnModel.class); + //处理列,表名为key,列名为值 + tableNames.forEach(name -> columnsCaching.put(name, inquires.stream() + .filter(i -> i.getTableName().equals(name)).collect(Collectors.toList()))); + } + //处理备注信息 + list.forEach(i -> { + //从缓存中根据表名获取列信息 + List columns = columnsCaching.get(i.getTableName()); + columns.forEach(j -> { + //列名表名一致 + if (i.getColumnName().equals(j.getColumnName()) + && i.getTableName().equals(j.getTableName())) { + //放入备注 + i.setRemarks(j.getRemarks()); + i.setColumnLength(j.getColumnLength()); + i.setColumnType(j.getColumnType()); + } + }); + }); + return list; } catch (SQLException e) { throw ExceptionUtils.mpe(e); } finally { diff --git a/screw-core/src/main/resources/template/freemarker/documentation_html.ftl b/screw-core/src/main/resources/template/freemarker/documentation_html.ftl index 80e5e83..b009b9e 100644 --- a/screw-core/src/main/resources/template/freemarker/documentation_html.ftl +++ b/screw-core/src/main/resources/template/freemarker/documentation_html.ftl @@ -17,4 +17,4 @@ along with this program. If not, see . --> -${title!'数据库设计文档'}

${title!'数据库设计文档'}

数据库名:${database!''}
<#if (version)??>文档版本:${version!''}
<#if (description)??>文档描述:${description!''}
<#list tables><#items as t>
序号表名说明
${t?index+1}${t.tableName}${t.remarks!''}
<#list tables><#items as t>
返回目录表名:${t.tableName}
说明:${t.remarks!''}
数据列:
<#list t.columns><#items as c>
序号名称数据类型长度小数位允许空值主键默认值说明
${c?index+1}${c.columnName!''}${c.typeName!''}${c.columnLength!''}${c.decimalDigits!'0'}${c.nullable!''}${c.primaryKey!''}${c.columnDef!''}${c.remarks!''}
\ No newline at end of file +${title!'数据库设计文档'}

${title!'数据库设计文档'}

数据库名:${database!''}
<#if (version)??>文档版本:${version!''}
<#if (description)??>文档描述:${description!''}
<#list tables><#items as t>
序号表名说明
${t?index+1}${t.tableName}${t.remarks!''}
<#list tables><#items as t>
返回目录表名:${t.tableName}
说明:${t.remarks!''}
数据列:
<#list t.columns><#items as c>
序号名称数据类型长度小数位允许空值主键默认值说明
${c?index+1}${c.columnName!''}${c.columnType!''}${c.columnLength!''}${c.decimalDigits!'0'}${c.nullable!''}${c.primaryKey!''}${c.columnDef!''}${c.remarks!''}
\ No newline at end of file diff --git a/screw-core/src/main/resources/template/freemarker/documentation_md.ftl b/screw-core/src/main/resources/template/freemarker/documentation_md.ftl index b454bfe..7a494f8 100644 --- a/screw-core/src/main/resources/template/freemarker/documentation_md.ftl +++ b/screw-core/src/main/resources/template/freemarker/documentation_md.ftl @@ -50,7 +50,7 @@ | 序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 | | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | <#items as c> -| ${c?index+1} | ${c.columnName!''} | ${c.typeName!''} | ${c.columnLength!''} | ${c.decimalDigits!'0'} | ${c.nullable!''} | ${c.primaryKey!''} | ${c.columnDef!''} | ${c.remarks!''} | +| ${c?index+1} | ${c.columnName!''} | ${c.columnType!''} | ${c.columnLength!''} | ${c.decimalDigits!'0'} | ${c.nullable!''} | ${c.primaryKey!''} | ${c.columnDef!''} | ${c.remarks!''} | \ No newline at end of file diff --git a/screw-core/src/main/resources/template/freemarker/documentation_word.ftl b/screw-core/src/main/resources/template/freemarker/documentation_word.ftl index fcde8d7..d4d1cc3 100644 --- a/screw-core/src/main/resources/template/freemarker/documentation_word.ftl +++ b/screw-core/src/main/resources/template/freemarker/documentation_word.ftl @@ -17,4 +17,4 @@ along with this program. If not, see . --> -${title!'数据库表结构文档'}数据库名:${database!''}<#if version?trim?length gt 2>文档版本:${version!''}<#if description?trim?length gt 2>文档描述:${description!''}<#--表--><#list tables><#items as t><#if (t.remarks??)&&(t.remarks?length gt 1)>${t.tableName!''} (${t.remarks})<#else>${t.tableName!''}<#--页面设置-->编号名称数据类型长度小数位允许空值主键默认值说明<#--列--><#list t.columns><#items as c>${c?index+1}${c.columnName!''}${c.typeName!''}${c.columnLength!''}${c.decimalDigits!'0'}${c.nullable!''}${c.primaryKey!''}${c.columnDef!''}${c.remarks!''}${title!'数据库表结构文档'}screwscrew20117100Microsoft Office Word011falsefalse116falsefalse16.00002052-11.1.0.9740 \ No newline at end of file +${title!'数据库表结构文档'}数据库名:${database!''}<#if version?trim?length gt 2>文档版本:${version!''}<#if description?trim?length gt 2>文档描述:${description!''}<#--表--><#list tables><#items as t><#if (t.remarks??)&&(t.remarks?length gt 1)>${t.tableName!''} (${t.remarks})<#else>${t.tableName!''}<#--页面设置-->编号名称数据类型长度小数位允许空值主键默认值说明<#--列--><#list t.columns><#items as c>${c?index+1}${c.columnName!''}${c.columnType!''}${c.columnLength!''}${c.decimalDigits!'0'}${c.nullable!''}${c.primaryKey!''}${c.columnDef!''}${c.remarks!''}${title!'数据库表结构文档'}screwscrew20117100Microsoft Office Word011falsefalse116falsefalse16.00002052-11.1.0.9740 \ No newline at end of file diff --git a/screw-core/src/main/resources/template/velocity/documentation_html.vm b/screw-core/src/main/resources/template/velocity/documentation_html.vm index 537b58b..77e901d 100644 --- a/screw-core/src/main/resources/template/velocity/documentation_html.vm +++ b/screw-core/src/main/resources/template/velocity/documentation_html.vm @@ -15,4 +15,4 @@ * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . *# -#if(${_data.title})${_data.title}#else 数据库设计文档#end

#if(${_data.title})${_data.title}#else 数据库设计文档#end

数据库名:$!{_data.database}
#*文档版本*# #if(${_data.version})文档版本:$!{_data.version}
#end #*文档描述*# #if(${_data.description})文档描述:$!{_data.description}
#end
#foreach($t in $_data.tables)#end
序号表名说明
$!{velocityCount}$!{t.tableName}$!{t.remarks}
#foreach($t in $_data.tables)
返回目录表名:$!{t.tableName}
说明:$!{t.remarks}
数据列:
#foreach($c in $t.columns)#end
序号名称数据类型长度小数位允许空值主键默认值说明
$!{velocityCount}$!{c.columnName}$!{c.typeName}$!{c.columnLength}#if(${c.decimalDigits})${c.decimalDigits}#else 0#end$!{c.nullable}$!{c.primaryKey}$!{c.columnDef}$!{c.remarks}
#end
\ No newline at end of file +#if(${_data.title})${_data.title}#else 数据库设计文档#end

#if(${_data.title})${_data.title}#else 数据库设计文档#end

数据库名:$!{_data.database}
#*文档版本*# #if(${_data.version})文档版本:$!{_data.version}
#end #*文档描述*# #if(${_data.description})文档描述:$!{_data.description}
#end
#foreach($t in $_data.tables)#end
序号表名说明
$!{velocityCount}$!{t.tableName}$!{t.remarks}
#foreach($t in $_data.tables)
返回目录表名:$!{t.tableName}
说明:$!{t.remarks}
数据列:
#foreach($c in $t.columns)#end
序号名称数据类型长度小数位允许空值主键默认值说明
$!{velocityCount}$!{c.columnName}$!{c.columnType}$!{c.columnLength}#if(${c.decimalDigits})${c.decimalDigits}#else 0#end$!{c.nullable}$!{c.primaryKey}$!{c.columnDef}$!{c.remarks}
#end
\ No newline at end of file diff --git a/screw-core/src/main/resources/template/velocity/documentation_md.vm b/screw-core/src/main/resources/template/velocity/documentation_md.vm index 447851e..00c41a6 100644 --- a/screw-core/src/main/resources/template/velocity/documentation_md.vm +++ b/screw-core/src/main/resources/template/velocity/documentation_md.vm @@ -45,6 +45,6 @@ | 序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 | | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | #foreach($c in $t.columns) -| $!{velocityCount} | $!{c.columnName} | $!{c.typeName} | $!{c.columnLength} | #if($!{c.decimalDigits})$!{c.decimalDigits}#else 0#end | $!{c.nullable}| $!{c.primaryKey} | $!{c.columnDef} | $!{c.remarks} | +| $!{velocityCount} | $!{c.columnName} | $!{c.columnType} | $!{c.columnLength} | #if($!{c.decimalDigits})$!{c.decimalDigits}#else 0#end | $!{c.nullable}| $!{c.primaryKey} | $!{c.columnDef} | $!{c.remarks} | #end #end \ No newline at end of file diff --git a/screw-core/src/main/resources/template/velocity/documentation_word.vm b/screw-core/src/main/resources/template/velocity/documentation_word.vm index 3cd3465..57de4e4 100644 --- a/screw-core/src/main/resources/template/velocity/documentation_word.vm +++ b/screw-core/src/main/resources/template/velocity/documentation_word.vm @@ -14,4 +14,4 @@ * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . - *##if($_data.title)!=""$!{_data.title}#else数据库表结构文档#end数据库名:$!{_data.database}#*版本*# #if(${_data.version}!= "")文档版本:$!{_data.version}#end #*描述*# #if(${_data.description}!= "")文档描述:$!{_data.description}#end #*表名*# #foreach($t in $_data.tables)#if(${t.remarks}!= "")$!{t.tableName} ($!{t.remarks})#else$!{t.tableName}#end编号名称数据类型长度小数位允许空值主键默认值说明#foreach($c in $t.columns)$!{velocityCount}$!{c.columnName}$!{c.typeName}$!{c.columnLength}#if(${c.decimalDigits})${c.decimalDigits}#else 0#end$!{c.nullable}$!{c.primaryKey}$!{c.columnDef}$!{c.remarks}#end#end#if($_data.title)!=""$!{_data.title}#else数据库表结构文档#endscrewscrew20117100Microsoft Office Word011falsefalse116falsefalse16.00002052-11.1.0.9740 \ No newline at end of file + *##if($_data.title)!=""$!{_data.title}#else数据库表结构文档#end数据库名:$!{_data.database}#*版本*# #if(${_data.version}!= "")文档版本:$!{_data.version}#end #*描述*# #if(${_data.description}!= "")文档描述:$!{_data.description}#end #*表名*# #foreach($t in $_data.tables)#if(${t.remarks}!= "")$!{t.tableName} ($!{t.remarks})#else$!{t.tableName}#end编号名称数据类型长度小数位允许空值主键默认值说明#foreach($c in $t.columns)$!{velocityCount}$!{c.columnName}$!{c.columnType}$!{c.columnLength}#if(${c.decimalDigits})${c.decimalDigits}#else 0#end$!{c.nullable}$!{c.primaryKey}$!{c.columnDef}$!{c.remarks}#end#end#if($_data.title)!=""$!{_data.title}#else数据库表结构文档#endscrewscrew20117100Microsoft Office Word011falsefalse116falsefalse16.00002052-11.1.0.9740 \ No newline at end of file diff --git a/screw-extension/src/main/java/cn/smallbun/screw/extension/pojo/process/PojoModelProcess.java b/screw-extension/src/main/java/cn/smallbun/screw/extension/pojo/process/PojoModelProcess.java index c2aa9f6..733c13a 100644 --- a/screw-extension/src/main/java/cn/smallbun/screw/extension/pojo/process/PojoModelProcess.java +++ b/screw-extension/src/main/java/cn/smallbun/screw/extension/pojo/process/PojoModelProcess.java @@ -84,27 +84,27 @@ public class PojoModelProcess implements PojoProcess { Set importList = new HashSet<>(); List fieldList = new ArrayList<>(); - for (ColumnModel column : model.getColumns()) { + /*for (ColumnModel column : model.getColumns()) { TypeModel typeModel = new TypeModel(); typeModel.setFieldName(column.getColumnName()); typeModel.setFieldType(column.getTypeName()); typeModel.setRemarks(column.getRemarks()); - + //先判断用户是否自定义 Class classType = dialect.getTypeByMap(customType, column.getTypeName()); if (classType == null) { classType = dialect.getClassTypeByFieldType(column.getTypeName()); } - + //如果对象不在java.lang包下,需要import if (!classType.getTypeName().startsWith("java.lang")) { importList.add(classType.getTypeName()); } - + typeModel .setClassName(nameStrategy.transFieldName(column.getColumnName(), classType)); typeModel.setClassType(classType.getSimpleName()); - + //如果不使用lombok,需要生成get,set方法 if (!pojoConfiguration.isUseLombok()) { typeModel @@ -112,9 +112,9 @@ public class PojoModelProcess implements PojoProcess { typeModel .setSetName(nameStrategy.transSetName(column.getColumnName(), classType)); } - + fieldList.add(typeModel); - } + }*/ pojoModel.setImportList(importList); pojoModel.setFieldList(fieldList); pojoModels.add(pojoModel);