sitelink1  
sitelink2  
sitelink3  
sitelink4  
sitelink5  
sitelink6  

검색과 정렬시에는 쿼리문에서 WHERE 문과 ORDER BY 문을 생성하게 되는데 이때 자바 로직에서는 if~else를 남발하게 마련이다.
복잡한 if~else문은 비즈니스 레이어에서든 퍼시스턴트 레이어에서든 코드의 가독성을 떨어뜨릴 수 밖에 없으며,
각 코더들마다 자기만의 코딩 스타일로 작업할 수 밖에 없다.
이렇게 검색과 정렬문의 생성에 필요한 로직을 따로 분리해냄으로써 주 비즈니스 로직의 가독성을 높여줄 수 있을것이라고 판단했다.

생성한 패키지는 com.omnibuscode.com.util.board.condition 이며 관련 클래스는 다음과 같다.
 

1. SearchInfo.java 
2. SearchInfoEmpty.java
3. SortInfo.java 
4. SortInfoEmpty.java
paging_condition.jpg

 


위 다이어그램에 나타나있는 SearchInfoEmpty.java클래스는 임의로 생성한 클래스이며 팩토리클래스에서 기본값 셋팅용으로 사용하고 있다.
기본적으로 변수생성시 기본값으로 지정해놓으면 검색문 생성 로직을 사용하면서 어딘가에서 발생하게 될 NullPointerexception을 방지할 수 있다.


SearchInfo 서브클래스는 다음의 SearchInfoForMysql 클래스를 참조하면 된다.

 


위와 같이 SearchInfo클래스에서 미리 정의한 몇가지 메서드들을 사용하여 서브클래스의 setSearchCondition() 메서드를 작성하게 된다. (Template Pattern)
그리고 이렇게 생성한 클래스들은 다음과 같은 코드로 사용할 수 있다.

 

 

  1. new SearchInfoForMysql(req).getSearchCondition();  

최종적으로 리턴되는 객체는 WHERE문 이하의 조건을 나타내는 스트링객체이다.
 

 

 

번호 제목 글쓴이 날짜 조회 수
106 Assertions : 비교 확인, 조건 확인, Null 확인 황제낙엽 2007.09.02 555
105 [BPP] 게시판 페이징 로직 분석 - M1.2 - SQLMap(ibatis) 지원 file 황제낙엽 2007.08.29 519
104 J2SE 5.0 - 컨스턴트와 메서드에 static imports 사용하기 황제낙엽 2007.08.28 581
103 J2SE 5.0 - 향상된 루프문 황제낙엽 2007.08.27 583
102 J2SE 5.0 - 제네릭(GENERIC) 황제낙엽 2007.08.27 566
101 Cookie Test file 황제낙엽 2007.08.27 480
100 쿠키 유틸리티 클래스 CookieBox 만들기 file 황제낙엽 2007.08.27 599
99 통합을 위한 요소 기술, Java와 XML 황제낙엽 2007.08.27 578
98 중복 로그인 제한 기법에 대하여 황제낙엽 2007.08.23 657
97 interface와 abstract클래스의 차이점 황제낙엽 2007.07.28 666
96 javadoc - The Java API Documentation Generator 황제낙엽 2007.07.25 748
95 자바의 I/O 예제 [3] file 황제낙엽 2007.07.16 607
94 자바의 I/O 예제 [2] file 황제낙엽 2007.07.14 503
93 계층형(답변형) 게시판 로직(최근 답변 하단으로) 황제낙엽 2007.07.11 608
92 J2SE 5.0 - 주석(annotation,표식) 개요 황제낙엽 2007.07.03 537
91 include문과 logging 설정 황제낙엽 2007.03.23 729
90 [BPP] 게시판 페이징 로직 분석 - M1.1 - 샘플 다운로드 및 사용법 file 황제낙엽 2007.06.15 614
89 [BPP] 게시판 페이징 로직 분석 - (5) 페이지 계산 file 황제낙엽 2007.06.15 611
88 [BPP] 게시판 페이징 로직 분석 - (4) 쿼리문의 자동완성 file 황제낙엽 2007.06.14 657
» [BPP] 게시판 페이징 로직 분석 - (3) 검색과 정렬 file 황제낙엽 2007.06.13 538