Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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, BFROM 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)

AltStyle によって変換されたページ (->オリジナル) /