Skip to content

Commit aa79a2b

Browse files
committed
1.修复mapper2 insert代码问题(感谢@mXiaoWan的PR)<br>2.优化对fulltext/index关键字的处理(感谢@WEGFan的反馈)。<br>3.新增日期类型的转换选择(感谢@qingkediguo的建议)。<br>4.新增是否包装类型的转换选择。
1 parent 59fae86 commit aa79a2b

File tree

6 files changed

+66
-30
lines changed

6 files changed

+66
-30
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535

3636
|更新日期|更新内容|
3737
|----|----|
38+
|20201020|1.修复mapper2 insert代码问题(感谢@mXiaoWan的PR)<br>2.优化对fulltext/index关键字的处理(感谢@WEGFan的反馈)。<br>3.新增日期类型的转换选择(感谢@qingkediguo的建议)。<br>4.新增是否包装类型的转换选择。|
3839
|20200628|优化Util下的BeanUtil,支持更多map.put的操作。整合CRUD模板到SQL(CRUD)模板。|
3940
|20200621|修复FreemarkerUtil的Path问题导致JAR包运行时无法获取template的问题。|
4041
|20200525|1.一些fix,关于封装工具类以及layui模板优化等.<br> 2.优化表备注的获取逻辑.<br> 3.生成时间格式改为yyyy-MM-dd,移除具体的时间,只保留日期|

generator-web/src/main/java/com/softdev/system/generator/entity/ParamInfo.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,18 @@ public class ParamInfo {
1414
private String authorName;
1515
private String packageName;
1616
private String returnUtil;
17+
/**命名转换规则*/
1718
private String nameCaseType;
19+
/**tinyint转换类型*/
1820
private String tinyintTransType;
21+
/**时间转换类型*/
22+
private String timeTransType;
23+
/**数据类型:ddl-sql json*/
1924
private String dataType;
25+
/**是否启用swagger*/
2026
private boolean swagger;
27+
/**是否启用包装类型*/
28+
private boolean packageType;
2129

2230
@Data
2331
public static class NAME_CASE_TYPE {

generator-web/src/main/java/com/softdev/system/generator/util/TableParseUtil.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ public static ClassInfo processTableIntoClassInfo(ParamInfo paramInfo)
3636
//process the param
3737
String tableSql = paramInfo.getTableSql();
3838
String nameCaseType = paramInfo.getNameCaseType();
39-
String tinyintTransType = paramInfo.getTinyintTransType();
4039

4140
if (tableSql == null || tableSql.trim().length() == 0) {
4241
throw new CodeGenerateException("Table structure can not be empty. 表结构不能为空。");
@@ -152,8 +151,10 @@ public static ClassInfo processTableIntoClassInfo(ParamInfo paramInfo)
152151
// 2018-11-8 zhengkai 修复tornadoorz反馈的KEY FK_permission_id (permission_id),KEY FK_role_id (role_id)情况
153152
// 2019-2-22 zhengkai 要在条件中使用复杂的表达式
154153
// 2019-4-29 zhengkai 优化对普通和特殊storage关键字的判断(感谢@AhHeadFloating的反馈 )
155-
boolean specialFlag = (!columnLine.contains("key ") && !columnLine.contains("constraint") && !columnLine.contains("using") && !columnLine.contains("unique")
154+
// 2020-10-20 zhengkai 优化对fulltext/index关键字的处理(感谢@WEGFan的反馈)
155+
boolean specialFlag = (!columnLine.contains("key ") && !columnLine.contains("constraint") && !columnLine.contains("using") && !columnLine.contains("unique ")
156156
&& !(columnLine.contains("primary ") && columnLine.indexOf("storage") + 3 > columnLine.indexOf("("))
157+
&& !columnLine.contains("fulltext ") && !columnLine.contains("index ")
157158
&& !columnLine.contains("pctincrease")
158159
&& !columnLine.contains("buffer_pool") && !columnLine.contains("tablespace")
159160
&& !(columnLine.contains("primary ") && i > 3));
@@ -190,19 +191,20 @@ public static ClassInfo processTableIntoClassInfo(ParamInfo paramInfo)
190191
//2018-9-16 zhengk 补充char/clob/blob/json等类型,如果类型未知,默认为String
191192
//2018-11-22 lshz0088 处理字段类型的时候,不严谨columnLine.contains(" int") 类似这种的,可在前后适当加一些空格之类的加以区分,否则当我的字段包含这些字符的时候,产生类型判断问题。
192193
//2020-05-03 MOSHOW.K.ZHENG 优化对所有类型的处理
194+
//2020-10-20 zhengkai 新增包装类型的转换选择
193195
if (columnLine.contains(" tinyint")) {
194196
//20191115 MOSHOW.K.ZHENG 支持对tinyint的特殊处理
195-
fieldClass = tinyintTransType;
197+
fieldClass = paramInfo.getTinyintTransType();
196198
} else if (columnLine.contains(" int") || columnLine.contains(" smallint")) {
197-
fieldClass = Integer.class.getSimpleName();
199+
fieldClass = (paramInfo.isPackageType())?Integer.class.getSimpleName():"int";
198200
} else if (columnLine.contains(" bigint")) {
199-
fieldClass = Long.class.getSimpleName();
201+
fieldClass = (paramInfo.isPackageType())?Long.class.getSimpleName():"long";
200202
} else if (columnLine.contains(" float")) {
201-
fieldClass = Float.class.getSimpleName();
203+
fieldClass = (paramInfo.isPackageType())?Float.class.getSimpleName():"float";
202204
} else if (columnLine.contains(" double")) {
203-
fieldClass = Double.class.getSimpleName();
205+
fieldClass = (paramInfo.isPackageType())?Double.class.getSimpleName():"double";
204206
} else if (columnLine.contains(" time") || columnLine.contains(" date") || columnLine.contains(" datetime") || columnLine.contains(" timestamp")) {
205-
fieldClass = Date.class.getSimpleName();
207+
fieldClass = paramInfo.getTimeTransType();
206208
} else if (columnLine.contains(" varchar") || columnLine.contains(" text") || columnLine.contains(" char")
207209
|| columnLine.contains(" clob") || columnLine.contains(" blob") || columnLine.contains(" json")) {
208210
fieldClass = String.class.getSimpleName();
@@ -227,9 +229,9 @@ public static ClassInfo processTableIntoClassInfo(ParamInfo paramInfo)
227229
}
228230
//数字范围9位及一下用Integer,大的用Long
229231
if (length <= 9) {
230-
fieldClass = Integer.class.getSimpleName();
232+
fieldClass = (paramInfo.isPackageType())?Integer.class.getSimpleName():"int";
231233
} else {
232-
fieldClass = Long.class.getSimpleName();
234+
fieldClass = (paramInfo.isPackageType())?Long.class.getSimpleName():"long";
233235
}
234236
} else {
235237
//有小数位数一律使用BigDecimal
@@ -240,7 +242,7 @@ public static ClassInfo processTableIntoClassInfo(ParamInfo paramInfo)
240242
}
241243
} else if (columnLine.contains(" boolean")) {
242244
//20190910 MOSHOW.K.ZHENG 新增对boolean的处理(感谢@violinxsc的反馈)以及修复tinyint类型字段无法生成boolean类型问题(感谢@hahaYhui的反馈)
243-
fieldClass = Boolean.class.getSimpleName();
245+
fieldClass = (paramInfo.isPackageType())?Boolean.class.getSimpleName():"boolean";
244246
} else {
245247
fieldClass = String.class.getSimpleName();
246248
}

generator-web/src/main/resources/templates/common/common-import.ftl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
<footer class="bd-footer text-muted" role="contentinfo">
5454
<div class="container">
5555
<strong>Copyright &copy; ${.now?string('yyyy')}-2022 &nbsp;
56-
<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>
56+
<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>
5757
</div>
5858
</footer>
5959
</footer>

generator-web/src/main/resources/templates/index.ftl

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,11 @@
7777
"dataType":$("#dataType").val(),
7878
"tinyintTransType":$("#tinyintTransType").val(),
7979
"nameCaseType":$("#nameCaseType").val(),
80-
"swagger":$("#isSwagger").val()
80+
"swagger":$("#isSwagger").val(),
81+
"timeTransType":$("#timeTransType").val(),
82+
"packageType":$("#packageType").val()
8183
};
84+
console.log($("#timeTransType").val());
8285
$.ajax({
8386
type: 'POST',
8487
url: base_url + "/genCode",
@@ -227,31 +230,31 @@
227230
<hr>
228231
<div class="input-group mb-3">
229232
<div class="input-group-prepend">
230-
<span class="input-group-text">作者名称</span>
233+
<span class="input-group-text">数据类型</span>
234+
</div>
235+
<select type="text" class="form-control" id="dataType"
236+
name="dataType">
237+
<option value="sql">ddl-sql</option>
238+
<option value="json">json</option>
239+
<option value="insert-sql">insert-sql</option>
240+
<#--<option value="sql-regex">sql-regex</option>-->
241+
</select>
242+
<div class="input-group-prepend">
243+
<span class="input-group-text">作者</span>
231244
</div>
232245
<input type="text" class="form-control" id="authorName" name="authorName" value="zhengkai.blog.csdn.net">
233246
<div class="input-group-prepend">
234-
<span class="input-group-text">返回封装</span>
247+
<span class="input-group-text">返回</span>
235248
</div>
236249
<input type="text" class="form-control" id="returnUtil" name="returnUtil" value="ReturnT">
237250
<div class="input-group-prepend">
238-
<span class="input-group-text">包名路径</span>
251+
<span class="input-group-text">包名</span>
239252
</div>
240253
<input type="text" class="form-control" id="packageName" name="packageName" value="com.softdev.system">
241254
</div>
242255
<div class="input-group mb-3">
243256
<div class="input-group-prepend">
244-
<span class="input-group-text">数据类型</span>
245-
</div>
246-
<select type="text" class="form-control" id="dataType"
247-
name="dataType">
248-
<option value="sql">ddl-sql</option>
249-
<option value="json">json</option>
250-
<option value="insert-sql">insert-sql</option>
251-
<#--<option value="sql-regex">sql-regex</option>-->
252-
</select>
253-
<div class="input-group-prepend">
254-
<span class="input-group-text">tinyint转换类型</span>
257+
<span class="input-group-text">tinyint转换</span>
255258
</div>
256259
<select type="text" class="form-control" id="tinyintTransType"
257260
name="tinyintTransType">
@@ -262,21 +265,43 @@
262265
<option value="String">String</option>
263266
</select>
264267
<div class="input-group-prepend">
265-
<span class="input-group-text">命名转换规则</span>
268+
<span class="input-group-text">时间类型</span>
269+
</div>
270+
<select type="text" class="form-control" id="timeTransType"
271+
name="timeTransType">
272+
<option value="Date">Date</option>
273+
<option value="DateTime">DateTime</option>
274+
<option value="Time">Time</option>
275+
<option value="Timestamp">Timestamp</option>
276+
<option value="Calendar">Calendar</option>
277+
<option value="LocalDate">LocalDate</option>
278+
<option value="LocalDateTime">LocalDateTime</option>
279+
<option value="LocalTime">LocalTime</option>
280+
</select>
281+
<div class="input-group-prepend">
282+
<span class="input-group-text">命名规则</span>
266283
</div>
267284
<select type="text" class="form-control" id="nameCaseType"
268285
name="nameCaseType">
269286
<option value="CamelCase">驼峰</option>
270287
<option value="UnderScoreCase">下划线</option>
271288
<#--<option value="UpperUnderScoreCase">大写下划线</option>-->
272289
</select>
290+
<div class="input-group-prepend">
291+
<span class="input-group-text">包装类型</span>
292+
</div>
293+
<select type="text" class="form-control" id="packageType"
294+
name="packageType">
295+
<option value="true">启用</option>
296+
<option value="false">关闭</option>
297+
</select>
273298
<div class="input-group-prepend">
274299
<span class="input-group-text">swagger-ui</span>
275300
</div>
276301
<select type="text" class="form-control" id="isSwagger"
277302
name="isSwagger">
278303
<option value="false">关闭</option>
279-
<option value="true">开启</option>
304+
<option value="true">启用</option>
280305
</select>
281306
</div>
282307
<textarea id="ddlSqlArea" placeholder="请输入表结构信息..." class="form-control btn-lg" style="height: 250px;">

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<parent>
1212
<groupId>org.springframework.boot</groupId>
1313
<artifactId>spring-boot-starter-parent</artifactId>
14-
<version>2.1.7.RELEASE</version>
14+
<version>2.2.7.RELEASE</version>
1515
</parent>
1616

1717
<modules>

0 commit comments

Comments
 (0)