
--- pom.xml
+++ pom.xml
... | ... | @@ -129,7 +129,7 @@ |
129 | 129 |
<dependency> |
130 | 130 |
<groupId>com.github.jsqlparser</groupId> |
131 | 131 |
<artifactId>jsqlparser</artifactId> |
132 |
- <version>3.2</version> |
|
132 |
+ <version>4.7</version> |
|
133 | 133 |
</dependency> |
134 | 134 |
</dependencies> |
135 | 135 |
|
--- server/main/java/kr/co/takensoft/dataQuality/rule/service/CodeManagementService.java
+++ server/main/java/kr/co/takensoft/dataQuality/rule/service/CodeManagementService.java
... | ... | @@ -46,14 +46,13 @@ |
46 | 46 |
Statement statement = CCJSqlParserUtil.parse(sql); |
47 | 47 |
|
48 | 48 |
// SQL 문이 SELECT 문인지 확인 |
49 |
- if (statement instanceof Select) { |
|
49 |
+ if (statement instanceof Select && sql.toUpperCase().contains("FROM")) { |
|
50 | 50 |
result = codeMgDAO.insertCode(params); |
51 | 51 |
} |
52 | 52 |
} catch (JSQLParserException e) { |
53 | 53 |
// SQL 문 파싱 오류 처리 |
54 | 54 |
System.out.println("SQL 문 파싱 오류: " + e.getMessage()); |
55 | 55 |
} |
56 |
- System.out.println("result : " + result); |
|
57 | 56 |
return result; |
58 | 57 |
} |
59 | 58 |
|
... | ... | @@ -71,7 +70,7 @@ |
71 | 70 |
Statement statement = CCJSqlParserUtil.parse(sql); |
72 | 71 |
|
73 | 72 |
// SQL 문이 SELECT 문인지 확인 |
74 |
- if (statement instanceof Select) { |
|
73 |
+ if (statement instanceof Select && sql.toUpperCase().contains("FROM")) { |
|
75 | 74 |
result = codeMgDAO.updateCode(params); |
76 | 75 |
} |
77 | 76 |
} catch (JSQLParserException e) { |
--- server/main/java/kr/co/takensoft/dataQuality/rule/service/WorkRuleManagementService.java
+++ server/main/java/kr/co/takensoft/dataQuality/rule/service/WorkRuleManagementService.java
... | ... | @@ -1,6 +1,10 @@ |
1 | 1 |
package kr.co.takensoft.dataQuality.rule.service; |
2 | 2 |
|
3 | 3 |
import kr.co.takensoft.dataQuality.rule.dao.WorkRuleManagementDAO; |
4 |
+import net.sf.jsqlparser.JSQLParserException; |
|
5 |
+import net.sf.jsqlparser.parser.CCJSqlParserUtil; |
|
6 |
+import net.sf.jsqlparser.statement.Statement; |
|
7 |
+import net.sf.jsqlparser.statement.select.Select; |
|
4 | 8 |
import org.springframework.beans.factory.annotation.Autowired; |
5 | 9 |
import org.springframework.stereotype.Service; |
6 | 10 |
|
... | ... | @@ -81,9 +85,19 @@ |
81 | 85 |
public int workRuleRegister(HashMap<String, Object> params){ |
82 | 86 |
int result = 0; |
83 | 87 |
try{ |
84 |
- result = wrManagementDAO.workRuleRegister(params); |
|
85 |
- } catch (Exception e){ |
|
88 |
+ String cnt = params.get("work_rule_cnt").toString(); // 건수 sql |
|
89 |
+ String sql = params.get("work_rule_sql").toString(); // 분석 sql |
|
90 |
+ // SQL 문 파싱 |
|
91 |
+ Statement cnt_statement = CCJSqlParserUtil.parse(cnt); |
|
92 |
+ Statement sql_statement = CCJSqlParserUtil.parse(sql); |
|
93 |
+ // SQL 문이 SELECT 문인지 확인 |
|
94 |
+ boolean compare = sql_statement instanceof Select && cnt_statement instanceof Select && sql.toUpperCase().contains("FROM") && cnt.toUpperCase().contains("FROM"); |
|
95 |
+ if(compare) { |
|
96 |
+ result = wrManagementDAO.workRuleRegister(params); |
|
97 |
+ } |
|
98 |
+ } catch (JSQLParserException e){ |
|
86 | 99 |
e.printStackTrace(); |
100 |
+ System.out.println("sql 파싱 오류 : " + e.getMessage()); |
|
87 | 101 |
} |
88 | 102 |
|
89 | 103 |
return result; |
... | ... | @@ -98,9 +112,18 @@ |
98 | 112 |
public int workRuleUpdate(HashMap<String, Object> params){ |
99 | 113 |
int result = 0; |
100 | 114 |
try{ |
101 |
- result = wrManagementDAO.workRuleUpdate(params); |
|
102 |
- } catch (Exception e){ |
|
103 |
- e.printStackTrace(); |
|
115 |
+ String sql = params.get("work_rule_sql").toString(); |
|
116 |
+ String cnt = params.get("work_rule_cnt").toString(); |
|
117 |
+ //SQL 문 파싱 |
|
118 |
+ Statement sql_statement = CCJSqlParserUtil.parse(sql); |
|
119 |
+ Statement cnt_statement = CCJSqlParserUtil.parse(cnt); |
|
120 |
+ // SQL 문이 SELECT 문인지 확인 |
|
121 |
+ boolean compare = sql_statement instanceof Select && cnt_statement instanceof Select && sql.toUpperCase().contains("FROM") && cnt.toUpperCase().contains("FROM"); |
|
122 |
+ if(compare) { |
|
123 |
+ result = wrManagementDAO.workRuleUpdate(params); |
|
124 |
+ } |
|
125 |
+ } catch (JSQLParserException e){ |
|
126 |
+ System.out.println("sql 파싱 오류 : " + e.getMessage()); |
|
104 | 127 |
} |
105 | 128 |
|
106 | 129 |
return result; |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?