몇 개의 단계를 거쳐 파싱을 진행하였습니다.
내용상 분량은 얼마되지 않지만... ( 스스로 진행하며 ) 나름 부족한 실력으로 많은 고민과 시행착오를 거쳐 나온 결과물입니다. OTL...
아직 갈길이 많이 멀지만...
앞서 진행했던 파싱 프로그램을 점검할 겸, 중간 결과물을 확인해 보도록 하겠습니다.
추후 더 보완되어야 할 부분이지만, 우선 임시로 출력하는 메소드를 만들었습니다.
■ Coding
HashMap<String, ArrayList<String>에 담겨 있던, 각 영역별 쿼리항목을 FOR문으로 StringBuilder에 저장합니다.
모든 결과를 StringBuilder에 저장 후 화면으로 출력합니다.
( 예제 마지막 단계에서는 쿼리를 소스파일에서 읽어왔기 때문에, 저장도 파일로 진행할 예정입니다. )
■ 출력 결과
처음에 소스파일에서 읽어온 원본 쿼리와 파싱 후 출력한 쿼리입니다.
아직 Inner-Query 부분의 줄바꿈이 제대로 처리되지 않았습니다.
다음 장에서 Inner-Query를 처리하는 부분을 진행해 보도록 하겠습니다.
Scalar-Query, Inner-Query, Sub-Query의 경우, 1Level의 쿼리에 ( )괄호로 묶여있는 2Level의 쿼리입니다.
이 쿼리들은 다시 3Level의 쿼리를 가질 수 있기 때문에, 재귀함수의 형태로 파싱이 만들어져야 할 것 같습니다.
왠지... 딱 봐도... 쉽지 않을 것 같습니다. OTL...
그래도 시작을 했으니 끝까지 진행해 보도록 하겠습니다.
끝.
※ 상식 Level-Up
- 쿼리 (개발) 표준 및 규칙
'Study > Java' 카테고리의 다른 글
Case1. 쿼리저장 클래스를 이용한 적재 (0) | 2018.11.18 |
---|---|
Case1. 파싱한 쿼리를 어떻게 저장하지? (0) | 2018.11.15 |
Case1. WHERE절 항목 추출 (0) | 2018.11.12 |
Case1. <공통함수> 문자열 내에 포함된 모든 문자열 시작위치 찾기 (0) | 2018.11.11 |
Case1. <공통함수> repAreaDeli (0) | 2018.11.11 |