본문으로 바로가기

DB조회에 조건을 주기위한 SQL문 작성

category Programing/JSP 2017. 7. 20. 12:47
반응형

이제 시작하는 쌩초보라 다이어리 형식이오니 필요에 의해서 지나가다 보시고 잘못된게 있으면 지적바랍니다 ===================================================================================

웹페이지 작성

JSP페이지에서 DB커낵션, DB Connection을 통해 데이터를 조회

sql 쿼리를 전달하여 해당하는 db의 데이터를 검색하고자 할 때,

 

정적인(고정된, 정해진) sql쿼리문 말고

여러개의 검색조건을 주고 db에서 데이터를 조회해 오고자 할 때 유용하다

 

이건 순전히 이제 막 (시작한지 이틀) 시작한 제 기준으로 다이어리 형식으로 작성한 것이다

추후 필요할 날을 위해..

 

try catch 문 안에서..

 

String sql = "select 칼럼1, 칼럼2, to_char(칼럼3, 'YYYY-MM-DD') 칼럼3, 칼럼4,"
      + " 칼럼5, 칼럼6, to_char(칼럼7, 'HH24:MI') 칼럼7, to_char(칼럼8, 'HH24:MI') 칼럼8,"
      + " to_char(칼럼9, 'HH24:MI') 칼럼9, to_char(칼럼10, 'HH24:MI') 칼럼10, 칼럼11, 칼럼12, 칼럼13, 칼럼14, 칼럼15"
      + " from 테이블명" + " WHERE 1=1 ";

    if (!id.equals("")) {
     sql += "AND 칼럼1 = '" + id + "'";
    }
    if (!divi.equals("")) {
     sql += "AND 칼럼2 = '" + divi + "'";

    }

    if (!CPinfo.equals("")) {
     sql += "AND 칼럼4 = '" + CPinfo + "'";
    }

    //  if(!start_nm.equals("")){
    //   sql += "AND 칼럼5 = '" + start_nm + "'";
    //  }

    //  if(!end_nm.equals("")){
    //   sql += "AND 칼럼6 = '" + end_nm + "'";
    //  }

    if (!rank.equals("")) {
     sql += "AND 칼럼15 = '" + rank + "'";
    }

 

id, divi, CPinfo, rank 는 입력받아 전달받은 변수

 

설명 - sql 뒤에 and 조건으로 계속해서 추가문을 붙혀야 할 때,

조건이 없는 경우에는 전체데이터를 조회해야 하기에 "where 1=1" 을 포함함으로서 완전한 문장을 구현

 

이후 if문 실행과 함께 해당 조건이 널값이 아니면 즉,

 

rank로 전달받은 변수가 null 이 아니면 sql변수 뒤에 다음의 쿼리문을 추가시킨다.

 

    if (!rank.equals("")) {
     sql += "AND 칼럼15 = '" + rank + "'";
    }

이렇게 함으로써 조건을 걸어 sql을 넘겨줄 수 있다

 

오늘도 하나 배움!

반응형