mirror of
https://github.com/moshowgame/SpringBootCodeGenerator.git
synced 2026-03-22 07:28:25 +08:00
1.修复mapper2 insert代码问题(感谢@mXiaoWan的PR)<br>2.优化对fulltext/index关键字的处理(感谢@WEGFan的反馈)。<br>3.新增日期类型的转换选择(感谢@qingkediguo的建议)。<br>4.新增是否包装类型的转换选择。
This commit is contained in:
@@ -35,6 +35,7 @@
|
|||||||
|
|
||||||
|更新日期|更新内容|
|
|更新日期|更新内容|
|
||||||
|----|----|
|
|----|----|
|
||||||
|
|20201020|1.修复mapper2 insert代码问题(感谢@mXiaoWan的PR)<br>2.优化对fulltext/index关键字的处理(感谢@WEGFan的反馈)。<br>3.新增日期类型的转换选择(感谢@qingkediguo的建议)。<br>4.新增是否包装类型的转换选择。|
|
||||||
|20200628|优化Util下的BeanUtil,支持更多map.put的操作。整合CRUD模板到SQL(CRUD)模板。|
|
|20200628|优化Util下的BeanUtil,支持更多map.put的操作。整合CRUD模板到SQL(CRUD)模板。|
|
||||||
|20200621|修复FreemarkerUtil的Path问题导致JAR包运行时无法获取template的问题。|
|
|20200621|修复FreemarkerUtil的Path问题导致JAR包运行时无法获取template的问题。|
|
||||||
|20200525|1.一些fix,关于封装工具类以及layui模板优化等.<br> 2.优化表备注的获取逻辑.<br> 3.生成时间格式改为yyyy-MM-dd,移除具体的时间,只保留日期|
|
|20200525|1.一些fix,关于封装工具类以及layui模板优化等.<br> 2.优化表备注的获取逻辑.<br> 3.生成时间格式改为yyyy-MM-dd,移除具体的时间,只保留日期|
|
||||||
|
|||||||
@@ -14,10 +14,18 @@ public class ParamInfo {
|
|||||||
private String authorName;
|
private String authorName;
|
||||||
private String packageName;
|
private String packageName;
|
||||||
private String returnUtil;
|
private String returnUtil;
|
||||||
|
/**命名转换规则*/
|
||||||
private String nameCaseType;
|
private String nameCaseType;
|
||||||
|
/**tinyint转换类型*/
|
||||||
private String tinyintTransType;
|
private String tinyintTransType;
|
||||||
|
/**时间转换类型*/
|
||||||
|
private String timeTransType;
|
||||||
|
/**数据类型:ddl-sql json*/
|
||||||
private String dataType;
|
private String dataType;
|
||||||
|
/**是否启用swagger*/
|
||||||
private boolean swagger;
|
private boolean swagger;
|
||||||
|
/**是否启用包装类型*/
|
||||||
|
private boolean packageType;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public static class NAME_CASE_TYPE {
|
public static class NAME_CASE_TYPE {
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ public class TableParseUtil {
|
|||||||
//process the param
|
//process the param
|
||||||
String tableSql = paramInfo.getTableSql();
|
String tableSql = paramInfo.getTableSql();
|
||||||
String nameCaseType = paramInfo.getNameCaseType();
|
String nameCaseType = paramInfo.getNameCaseType();
|
||||||
String tinyintTransType = paramInfo.getTinyintTransType();
|
|
||||||
|
|
||||||
if (tableSql == null || tableSql.trim().length() == 0) {
|
if (tableSql == null || tableSql.trim().length() == 0) {
|
||||||
throw new CodeGenerateException("Table structure can not be empty. 表结构不能为空。");
|
throw new CodeGenerateException("Table structure can not be empty. 表结构不能为空。");
|
||||||
@@ -152,8 +151,10 @@ public class TableParseUtil {
|
|||||||
// 2018-11-8 zhengkai 修复tornadoorz反馈的KEY FK_permission_id (permission_id),KEY FK_role_id (role_id)情况
|
// 2018-11-8 zhengkai 修复tornadoorz反馈的KEY FK_permission_id (permission_id),KEY FK_role_id (role_id)情况
|
||||||
// 2019-2-22 zhengkai 要在条件中使用复杂的表达式
|
// 2019-2-22 zhengkai 要在条件中使用复杂的表达式
|
||||||
// 2019-4-29 zhengkai 优化对普通和特殊storage关键字的判断(感谢@AhHeadFloating的反馈 )
|
// 2019-4-29 zhengkai 优化对普通和特殊storage关键字的判断(感谢@AhHeadFloating的反馈 )
|
||||||
boolean specialFlag = (!columnLine.contains("key ") && !columnLine.contains("constraint") && !columnLine.contains("using") && !columnLine.contains("unique")
|
// 2020-10-20 zhengkai 优化对fulltext/index关键字的处理(感谢@WEGFan的反馈)
|
||||||
|
boolean specialFlag = (!columnLine.contains("key ") && !columnLine.contains("constraint") && !columnLine.contains("using") && !columnLine.contains("unique ")
|
||||||
&& !(columnLine.contains("primary ") && columnLine.indexOf("storage") + 3 > columnLine.indexOf("("))
|
&& !(columnLine.contains("primary ") && columnLine.indexOf("storage") + 3 > columnLine.indexOf("("))
|
||||||
|
&& !columnLine.contains("fulltext ") && !columnLine.contains("index ")
|
||||||
&& !columnLine.contains("pctincrease")
|
&& !columnLine.contains("pctincrease")
|
||||||
&& !columnLine.contains("buffer_pool") && !columnLine.contains("tablespace")
|
&& !columnLine.contains("buffer_pool") && !columnLine.contains("tablespace")
|
||||||
&& !(columnLine.contains("primary ") && i > 3));
|
&& !(columnLine.contains("primary ") && i > 3));
|
||||||
@@ -190,19 +191,20 @@ public class TableParseUtil {
|
|||||||
//2018-9-16 zhengk 补充char/clob/blob/json等类型,如果类型未知,默认为String
|
//2018-9-16 zhengk 补充char/clob/blob/json等类型,如果类型未知,默认为String
|
||||||
//2018-11-22 lshz0088 处理字段类型的时候,不严谨columnLine.contains(" int") 类似这种的,可在前后适当加一些空格之类的加以区分,否则当我的字段包含这些字符的时候,产生类型判断问题。
|
//2018-11-22 lshz0088 处理字段类型的时候,不严谨columnLine.contains(" int") 类似这种的,可在前后适当加一些空格之类的加以区分,否则当我的字段包含这些字符的时候,产生类型判断问题。
|
||||||
//2020-05-03 MOSHOW.K.ZHENG 优化对所有类型的处理
|
//2020-05-03 MOSHOW.K.ZHENG 优化对所有类型的处理
|
||||||
|
//2020-10-20 zhengkai 新增包装类型的转换选择
|
||||||
if (columnLine.contains(" tinyint")) {
|
if (columnLine.contains(" tinyint")) {
|
||||||
//20191115 MOSHOW.K.ZHENG 支持对tinyint的特殊处理
|
//20191115 MOSHOW.K.ZHENG 支持对tinyint的特殊处理
|
||||||
fieldClass = tinyintTransType;
|
fieldClass = paramInfo.getTinyintTransType();
|
||||||
} else if (columnLine.contains(" int") || columnLine.contains(" smallint")) {
|
} else if (columnLine.contains(" int") || columnLine.contains(" smallint")) {
|
||||||
fieldClass = Integer.class.getSimpleName();
|
fieldClass = (paramInfo.isPackageType())?Integer.class.getSimpleName():"int";
|
||||||
} else if (columnLine.contains(" bigint")) {
|
} else if (columnLine.contains(" bigint")) {
|
||||||
fieldClass = Long.class.getSimpleName();
|
fieldClass = (paramInfo.isPackageType())?Long.class.getSimpleName():"long";
|
||||||
} else if (columnLine.contains(" float")) {
|
} else if (columnLine.contains(" float")) {
|
||||||
fieldClass = Float.class.getSimpleName();
|
fieldClass = (paramInfo.isPackageType())?Float.class.getSimpleName():"float";
|
||||||
} else if (columnLine.contains(" double")) {
|
} else if (columnLine.contains(" double")) {
|
||||||
fieldClass = Double.class.getSimpleName();
|
fieldClass = (paramInfo.isPackageType())?Double.class.getSimpleName():"double";
|
||||||
} else if (columnLine.contains(" time") || columnLine.contains(" date") || columnLine.contains(" datetime") || columnLine.contains(" timestamp")) {
|
} else if (columnLine.contains(" time") || columnLine.contains(" date") || columnLine.contains(" datetime") || columnLine.contains(" timestamp")) {
|
||||||
fieldClass = Date.class.getSimpleName();
|
fieldClass = paramInfo.getTimeTransType();
|
||||||
} else if (columnLine.contains(" varchar") || columnLine.contains(" text") || columnLine.contains(" char")
|
} else if (columnLine.contains(" varchar") || columnLine.contains(" text") || columnLine.contains(" char")
|
||||||
|| columnLine.contains(" clob") || columnLine.contains(" blob") || columnLine.contains(" json")) {
|
|| columnLine.contains(" clob") || columnLine.contains(" blob") || columnLine.contains(" json")) {
|
||||||
fieldClass = String.class.getSimpleName();
|
fieldClass = String.class.getSimpleName();
|
||||||
@@ -227,9 +229,9 @@ public class TableParseUtil {
|
|||||||
}
|
}
|
||||||
//数字范围9位及一下用Integer,大的用Long
|
//数字范围9位及一下用Integer,大的用Long
|
||||||
if (length <= 9) {
|
if (length <= 9) {
|
||||||
fieldClass = Integer.class.getSimpleName();
|
fieldClass = (paramInfo.isPackageType())?Integer.class.getSimpleName():"int";
|
||||||
} else {
|
} else {
|
||||||
fieldClass = Long.class.getSimpleName();
|
fieldClass = (paramInfo.isPackageType())?Long.class.getSimpleName():"long";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//有小数位数一律使用BigDecimal
|
//有小数位数一律使用BigDecimal
|
||||||
@@ -240,7 +242,7 @@ public class TableParseUtil {
|
|||||||
}
|
}
|
||||||
} else if (columnLine.contains(" boolean")) {
|
} else if (columnLine.contains(" boolean")) {
|
||||||
//20190910 MOSHOW.K.ZHENG 新增对boolean的处理(感谢@violinxsc的反馈)以及修复tinyint类型字段无法生成boolean类型问题(感谢@hahaYhui的反馈)
|
//20190910 MOSHOW.K.ZHENG 新增对boolean的处理(感谢@violinxsc的反馈)以及修复tinyint类型字段无法生成boolean类型问题(感谢@hahaYhui的反馈)
|
||||||
fieldClass = Boolean.class.getSimpleName();
|
fieldClass = (paramInfo.isPackageType())?Boolean.class.getSimpleName():"boolean";
|
||||||
} else {
|
} else {
|
||||||
fieldClass = String.class.getSimpleName();
|
fieldClass = String.class.getSimpleName();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
<footer class="bd-footer text-muted" role="contentinfo">
|
<footer class="bd-footer text-muted" role="contentinfo">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<strong>Copyright © ${.now?string('yyyy')}-2022
|
<strong>Copyright © ${.now?string('yyyy')}-2022
|
||||||
<p><a href="https://github.com/moshowgame/SpringBootCodeGenerator">SpringBootCodeGenerator</a>由<a href="https://blog.csdn.net/moshowgame" target="_blank">@Moshow/大狼狗/郑锴</a> 开发维护。 由 <a href="https://www.bejson.com">BeJson三叔 </a> 提供在线版本。点击<a href="#" id="donate2">赞赏</a>。</p>
|
<p><a href="https://github.com/moshowgame/SpringBootCodeGenerator">SpringBootCodeGenerator</a>由<a href="https://blog.csdn.net/moshowgame" target="_blank">@Moshow郑锴</a> 开发维护。 由 <a href="https://www.bejson.com">BeJson三叔 </a> 提供在线版本。点击<a href="#" id="donate2">赞赏</a>。</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
</footer>
|
</footer>
|
||||||
|
|||||||
@@ -77,8 +77,11 @@
|
|||||||
"dataType":$("#dataType").val(),
|
"dataType":$("#dataType").val(),
|
||||||
"tinyintTransType":$("#tinyintTransType").val(),
|
"tinyintTransType":$("#tinyintTransType").val(),
|
||||||
"nameCaseType":$("#nameCaseType").val(),
|
"nameCaseType":$("#nameCaseType").val(),
|
||||||
"swagger":$("#isSwagger").val()
|
"swagger":$("#isSwagger").val(),
|
||||||
|
"timeTransType":$("#timeTransType").val(),
|
||||||
|
"packageType":$("#packageType").val()
|
||||||
};
|
};
|
||||||
|
console.log($("#timeTransType").val());
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: base_url + "/genCode",
|
url: base_url + "/genCode",
|
||||||
@@ -225,20 +228,6 @@
|
|||||||
</p>
|
</p>
|
||||||
<div id="donate" class="container" show="no"></div>
|
<div id="donate" class="container" show="no"></div>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="input-group mb-3">
|
|
||||||
<div class="input-group-prepend">
|
|
||||||
<span class="input-group-text">作者名称</span>
|
|
||||||
</div>
|
|
||||||
<input type="text" class="form-control" id="authorName" name="authorName" value="zhengkai.blog.csdn.net">
|
|
||||||
<div class="input-group-prepend">
|
|
||||||
<span class="input-group-text">返回封装</span>
|
|
||||||
</div>
|
|
||||||
<input type="text" class="form-control" id="returnUtil" name="returnUtil" value="ReturnT">
|
|
||||||
<div class="input-group-prepend">
|
|
||||||
<span class="input-group-text">包名路径</span>
|
|
||||||
</div>
|
|
||||||
<input type="text" class="form-control" id="packageName" name="packageName" value="com.softdev.system">
|
|
||||||
</div>
|
|
||||||
<div class="input-group mb-3">
|
<div class="input-group mb-3">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">数据类型</span>
|
<span class="input-group-text">数据类型</span>
|
||||||
@@ -251,7 +240,21 @@
|
|||||||
<#--<option value="sql-regex">sql-regex</option>-->
|
<#--<option value="sql-regex">sql-regex</option>-->
|
||||||
</select>
|
</select>
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">tinyint转换类型</span>
|
<span class="input-group-text">作者</span>
|
||||||
|
</div>
|
||||||
|
<input type="text" class="form-control" id="authorName" name="authorName" value="zhengkai.blog.csdn.net">
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text">返回</span>
|
||||||
|
</div>
|
||||||
|
<input type="text" class="form-control" id="returnUtil" name="returnUtil" value="ReturnT">
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text">包名</span>
|
||||||
|
</div>
|
||||||
|
<input type="text" class="form-control" id="packageName" name="packageName" value="com.softdev.system">
|
||||||
|
</div>
|
||||||
|
<div class="input-group mb-3">
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text">tinyint转换</span>
|
||||||
</div>
|
</div>
|
||||||
<select type="text" class="form-control" id="tinyintTransType"
|
<select type="text" class="form-control" id="tinyintTransType"
|
||||||
name="tinyintTransType">
|
name="tinyintTransType">
|
||||||
@@ -262,7 +265,21 @@
|
|||||||
<option value="String">String</option>
|
<option value="String">String</option>
|
||||||
</select>
|
</select>
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">命名转换规则</span>
|
<span class="input-group-text">时间类型</span>
|
||||||
|
</div>
|
||||||
|
<select type="text" class="form-control" id="timeTransType"
|
||||||
|
name="timeTransType">
|
||||||
|
<option value="Date">Date</option>
|
||||||
|
<option value="DateTime">DateTime</option>
|
||||||
|
<option value="Time">Time</option>
|
||||||
|
<option value="Timestamp">Timestamp</option>
|
||||||
|
<option value="Calendar">Calendar</option>
|
||||||
|
<option value="LocalDate">LocalDate</option>
|
||||||
|
<option value="LocalDateTime">LocalDateTime</option>
|
||||||
|
<option value="LocalTime">LocalTime</option>
|
||||||
|
</select>
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text">命名规则</span>
|
||||||
</div>
|
</div>
|
||||||
<select type="text" class="form-control" id="nameCaseType"
|
<select type="text" class="form-control" id="nameCaseType"
|
||||||
name="nameCaseType">
|
name="nameCaseType">
|
||||||
@@ -270,13 +287,21 @@
|
|||||||
<option value="UnderScoreCase">下划线</option>
|
<option value="UnderScoreCase">下划线</option>
|
||||||
<#--<option value="UpperUnderScoreCase">大写下划线</option>-->
|
<#--<option value="UpperUnderScoreCase">大写下划线</option>-->
|
||||||
</select>
|
</select>
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text">包装类型</span>
|
||||||
|
</div>
|
||||||
|
<select type="text" class="form-control" id="packageType"
|
||||||
|
name="packageType">
|
||||||
|
<option value="true">启用</option>
|
||||||
|
<option value="false">关闭</option>
|
||||||
|
</select>
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">swagger-ui</span>
|
<span class="input-group-text">swagger-ui</span>
|
||||||
</div>
|
</div>
|
||||||
<select type="text" class="form-control" id="isSwagger"
|
<select type="text" class="form-control" id="isSwagger"
|
||||||
name="isSwagger">
|
name="isSwagger">
|
||||||
<option value="false">关闭</option>
|
<option value="false">关闭</option>
|
||||||
<option value="true">开启</option>
|
<option value="true">启用</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<textarea id="ddlSqlArea" placeholder="请输入表结构信息..." class="form-control btn-lg" style="height: 250px;">
|
<textarea id="ddlSqlArea" placeholder="请输入表结构信息..." class="form-control btn-lg" style="height: 250px;">
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@@ -11,7 +11,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-parent</artifactId>
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
<version>2.1.7.RELEASE</version>
|
<version>2.2.7.RELEASE</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
|
|||||||
Reference in New Issue
Block a user