Skip to content

Commit 9f54fbf

Browse files
author
杨利兵
committed
v4.1.0
改进dml生成功能
1 parent b2ceca8 commit 9f54fbf

File tree

5 files changed

+37
-3
lines changed

5 files changed

+37
-3
lines changed

src/main/java/com/yanglb/codegen/core/parser/impl/DmlParser.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,23 @@
1616
package com.yanglb.codegen.core.parser.impl;
1717

1818
import com.yanglb.codegen.core.parser.BaseParser;
19+
import org.apache.commons.cli.Option;
20+
import org.apache.commons.cli.Options;
1921

2022
public class DmlParser extends BaseParser {
23+
@Override
24+
protected Options options() {
25+
Options options = super.options();
26+
27+
Option target = Option.builder()
28+
.longOpt("target")
29+
.hasArg()
30+
.desc("指定生成目标,可选 mysql/mssql/sqlite,默认为mysql")
31+
.build();
32+
options.addOption(target);
33+
return options;
34+
}
35+
2136
@Override
2237
protected boolean headerHelp() {
2338
System.out.println("生成初始数据SQL脚本,用于向数据添加初始数据。");

src/main/java/com/yanglb/codegen/core/translator/BaseSqlTranslator.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717

1818
import java.util.List;
1919

20-
import com.yanglb.codegen.exceptions.CodeGenException;
21-
2220
public class BaseSqlTranslator<T> extends BaseTranslator<List<T>> {
2321
// 列引号字符,如:SQL Server为[], MySQL为`等
2422
protected String sqlColumnStart = "\"";

src/main/java/com/yanglb/codegen/core/translator/impl/DdlSqliteTranslatorImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@
2828

2929
public class DdlSqliteTranslatorImpl extends BaseDdlTranslator {
3030

31+
public DdlSqliteTranslatorImpl() {
32+
this.sqlColumnStart = "\"";
33+
this.sqlColumnEnd = "\"";
34+
}
35+
3136
@Override
3237
protected void onBeforeTranslate() throws CodeGenException {
3338
super.onBeforeTranslate();

src/main/java/com/yanglb/codegen/core/translator/impl/DmlTranslatorImpl.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,22 @@ protected void onBeforeTranslate() throws CodeGenException {
4141
fileName = fileName.substring(0, index);
4242
}
4343
this.writableModel.setFileName(fileName);
44+
45+
String target = parameterModel.getOptions().getOptionValue("target", "mysql");
46+
switch (target) {
47+
case "mysql":
48+
sqlColumnStart = "`";
49+
sqlColumnEnd = "`";
50+
break;
51+
case "mssql":
52+
sqlColumnStart = "[";
53+
sqlColumnEnd = "[";
54+
break;
55+
case "sqlite":
56+
sqlColumnStart = "\"";
57+
sqlColumnEnd = "\"";
58+
break;
59+
}
4460
}
4561

4662
@Override

src/main/java/com/yanglb/codegen/utils/Infos.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
public class Infos {
1919
public static final String Name = "Code Generator";
20-
public static final String Version = "4.0.3";
20+
public static final String Version = "4.1.0";
2121
public static final String Copyright = "Copyright 2015-2020 yanglb.com All Rights Reserved.";
2222
public static final String Author = "me@yanglb.com";
2323
public static final String Website = "https://yanglb.com";

0 commit comments

Comments
 (0)