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문 이하의 조건을 나타내는 스트링객체이다.
 

 

 

번호 제목 글쓴이 날짜 조회 수
» [BPP] 게시판 페이징 로직 분석 - (3) 검색과 정렬 file 황제낙엽 2007.06.13 1650
86 [BPP] 게시판 페이징 로직 분석 - (2) 간단한 페이징 기법 황제낙엽 2007.06.08 2105
85 [BPP] 게시판 페이징 로직 분석 - (1) 클래스 목록 file 황제낙엽 2007.06.06 1874
84 문자열의 앞뒤space제거처리 성능체크 황제낙엽 2007.06.03 2229
83 간단한 서블릿 예제들 file 황제낙엽 2007.05.12 1627
82 [Tip] 톰캣 JNDI DB POOL 설정하기 황제낙엽 2007.05.11 2079
81 [javac 에러] code too large for try statement 황제낙엽 2007.02.28 2101
80 JDBC 테스트 페이지 file 황제낙엽 2007.02.22 11098
79 [JDBC] URL 사용법 모음 황제낙엽 2007.02.21 3283
78 Exception Tunneling - C2 Wiki (last edited January 15, 2005) 황제낙엽 2007.02.08 2618
77 Java's checked exceptions were a mistake - Rod Waldhoff (1 April 2003) 황제낙엽 2007.02.08 2240
76 Best Practices for Exception Handling by Gunjan Doshi (11/19/2003) 황제낙엽 2007.02.08 2197
75 "Thinking in Java"의 저자인 Bruce Eckel의 Checked Exception에 대한 생각 황제낙엽 2007.02.06 1975
74 수치형 연산 고려사항 황제낙엽 2007.01.25 1887
73 시스템 속성(System Property) 얻기 및 설정하기 황제낙엽 2007.01.24 2023
72 자바코딩을 위한 EditPlus설정법 황제낙엽 2003.05.16 2121
71 SCJP 2002년 10월 정도의 버전 덤프들입니다. 황제낙엽 2002.12.29 2177
70 Jakarta 프로젝트의 Regexp(정규식) 패키지 사용하기 황제낙엽 2007.01.22 1827
69 PATTERN MATCHING (패턴 매칭) file 황제낙엽 2007.01.17 4685
68 JAVA 와 XML (간단한 프로그램 예제) 황제낙엽 2006.08.31 2126