Skip to content

Commit c5c55a8

Browse files
committed
parse 메소드 오버로딩 최적화
1 parent dbdd6ea commit c5c55a8

File tree

5 files changed

+23
-60
lines changed

5 files changed

+23
-60
lines changed

.idea/workspace.xml

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

input.json

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,27 @@
11
{
22
"CRUD": ["SELECT"],
3-
"COLUMN": ["*"],
4-
"TABLE": ["(SELECT A, B, C FROM SUBQUERYTABLE WHERE CONDITION IN ('A', 'B', 'C') AND CONDITION IN (SELECT CONDITION FROM ANOTHER UNION SELECT CONDITION FROM UNIONTABLE))"],
5-
"TABLE SUB QUERY 1": ["(SELECT A, B, C FROM SUBQUERYTABLE WHERE CONDITION IN ('A', 'B', 'C') AND CONDITION IN (SELECT CONDITION FROM ANOTHER UNION SELECT CONDITION FROM UNIONTABLE))"],
3+
"COLUMN": [
4+
"A",
5+
"B"
6+
],
7+
"ORDER_BY": ["A"],
8+
"TABLE": ["(SELECT A, B FROM FROMTABLE WHERE SUBCONDITION = 'SUBCONDITION')"],
9+
"TABLE SUB QUERY 1": ["(SELECT A, B FROM FROMTABLE WHERE SUBCONDITION = 'SUBCONDITION')"],
610
"TABLE SUB QUERY ANALYSE 1": {
711
"CRUD": ["SELECT"],
812
"COLUMN": [
913
"A",
10-
"B",
11-
"C"
14+
"B"
1215
],
13-
"TABLE": ["SUBQUERYTABLE"],
14-
"WHERE": ["CONDITION IN ('A', 'B', 'C') AND CONDITION IN (SELECT CONDITION FROM ANOTHER UNION SELECT CONDITION FROM UNIONTABLE)"],
15-
"WHERE SUB QUERY 1": ["(SELECT CONDITION FROM ANOTHER UNION SELECT CONDITION FROM UNIONTABLE)"],
16-
"WHERE SUB QUERY ANALYSE 1": {
17-
"CRUD": ["SELECT"],
18-
"COLUMN": ["CONDITION"],
19-
"TABLE": ["ANOTHER"],
20-
"UNION 1": ["SELECT CONDITION FROM UNIONTABLE"],
21-
"UNION ANALYSE 1": {
22-
"CRUD": ["SELECT"],
23-
"COLUMN": ["CONDITION"],
24-
"TABLE": ["UNIONTABLE"]
25-
}
26-
}
16+
"TABLE": ["FROMTABLE"],
17+
"WHERE": ["SUBCONDITION = 'SUBCONDITION'"]
2718
},
28-
"UNION ALL 1": ["SELECT * FROM TAB2 UNION SELECT * FROM TAB3"],
29-
"UNION ALL ANALYSE 1": {
19+
"WHERE": ["C = (SELECT C FROM WHERETABLE WHERE WHERECONDITION = 'WHERECONDITION')"],
20+
"WHERE SUB QUERY 1": ["(SELECT C FROM WHERETABLE WHERE WHERECONDITION = 'WHERECONDITION')"],
21+
"WHERE SUB QUERY ANALYSE 1": {
3022
"CRUD": ["SELECT"],
31-
"COLUMN": ["*"],
32-
"TABLE": ["TAB2"],
33-
"UNION 1": ["SELECT * FROM TAB3"],
34-
"UNION ANALYSE 1": {
35-
"CRUD": ["SELECT"],
36-
"COLUMN": ["*"],
37-
"TABLE": ["TAB3"]
38-
}
23+
"COLUMN": ["C"],
24+
"TABLE": ["WHERETABLE"],
25+
"WHERE": ["WHERECONDITION = 'WHERECONDITION'"]
3926
}
4027
}
Binary file not shown.

output.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
(SELECT * FROM (SELECT A, B, C FROM SUBQUERYTABLE WHERE CONDITION IN ('A', 'B', 'C') AND CONDITION IN (SELECT CONDITION FROM ANOTHER UNION SELECT CONDITION FROM UNIONTABLE))) UNION ALL (SELECT * FROM TAB2 UNION SELECT * FROM TAB3)
1+
(SELECT A, B FROM (SELECT A, B FROM FROMTABLE WHERE SUBCONDITION = 'SUBCONDITION') WHERE C = (SELECT C FROM WHERETABLE WHERE WHERECONDITION = 'WHERECONDITION') ORDER BY A)

src/com/inzapp/jsonToSqlParser/core/Parser.java

Lines changed: 3 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -8,34 +8,7 @@
88

99
public class Parser extends JsonManager {
1010
public String parse(JSONObject json) {
11-
setJson(json);
12-
Statement statement;
13-
String crud = getFromJson(JsonKey.CRUD).get(0);
14-
switch (crud) {
15-
case JsonKey.INSERT:
16-
statement = new InsertParser().parse(json);
17-
break;
18-
19-
case JsonKey.SELECT:
20-
if (getFromJson(JsonKey.UNION + 1) != null || getFromJson(JsonKey.UNION_ALL + 1) != null)
21-
statement = new UnionSelectParser().parse(json);
22-
else statement = new SelectParser().parse(json);
23-
break;
24-
25-
case JsonKey.UPDATE:
26-
statement = new UpdateParser().parse(json);
27-
break;
28-
29-
case JsonKey.DELETE:
30-
statement = new DeleteParser().parse(json);
31-
break;
32-
33-
default:
34-
System.out.println("unknown crud : " + crud);
35-
return null;
36-
}
37-
38-
return statement.toString();
11+
return parse(json, false);
3912
}
4013

4114
public String parse(JSONObject json, boolean exceptUnion) {
@@ -48,7 +21,8 @@ public String parse(JSONObject json, boolean exceptUnion) {
4821
break;
4922

5023
case JsonKey.SELECT:
51-
statement = new SelectParser().parse(json);
24+
if(exceptUnion) statement = new SelectParser().parse(json);
25+
else statement = new UnionSelectParser().parse(json);
5226
break;
5327

5428
case JsonKey.UPDATE:

0 commit comments

Comments
 (0)