remark : java 쿼리 소스 문 중간에 WHERE 1=1 가 가끔씩 보인다.
and 문 연결을 조건문 없이 지저분하지 않은 소스를 만들려고 하는 기법이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
public class Hello { public static void main(String[] args) { String first ="1"; String second ="2"; StringBuffer sql = new StringBuffer(); sql.append("\n SELECT * "); sql.append("\n FROM testTbl "); sql.append("\n WHERE 1=1 "); if( first != null ){ sql.append("\n AND first = '1' "); } if( second != null ){ sql.append("\n AND second = '2' "); } System.out.println(sql.toString()); } } |
결과
1 2 3 4 5 6 7 |
SELECT * FROM testTbl WHERE 1=1 AND first = '1' AND second = '1' |