너무어려웡
502
2017-06-12 12:21:44
5
829

spring null 쿼리 관련 질문입니다!


만약 아이디를 이용해서 비밀번호를 찾는 쿼리를 사용한다고 했을때 맵퍼에서 

select pwd from search where id=${id}

의 쿼리로 찾는다고 할 때 만약에 id가 db에 없으면 널포인트 익셉션이 뜨는데...

이런 경우는 어떻게 처리 해야하나요?

0
0
  • 답변 5

  • 샤쿠
    104
    2017-06-12 12:48:46

    if (result != null) {

    pwd = result.getString("pwd");

    } else {

    데이터 없음...

    }


    null을 우선 체크하고 처리하세요...

    결과물이 없으면 null 을 반환합니다.


    null 에는 getString 이라는 메서드가 없겠죠... 당연히 널포인트예외가 발생하는 겁니다..



    0
  • 시름시름
    589
    2017-06-12 12:55:02

    윗분 말씀대로


    select pwd from search

    if (id != null) {

    where id=${id}

    }


    이런식으로 처리하면 될거같네요

    0
  • 너무어려웡
    502
    2017-06-12 13:08:36

    이런식으로 해도 입력한 id를 통해

    db 안에 입력한 id가 있는지 없는지 판단을 해줘야 하는데...

    그럼 결국 똑같이 오류가 뜨지 않나요...?

    0
  • 시름시름
    589
    2017-06-12 13:16:11

    null포인트익셉션은 id파라미터에 값이 null이 들어가기 떄문에 생기는거에요

    제생각엔 id파라미터 받아오는게 문제같은데요

    아이디가 없어서 문제가아니라

    1
  • 우띠
    463
    2017-06-12 13:18:53

    샤쿠님 답변으로 처리하시는게 맞습니다.

    시름시름님 답변의 경우 search 테이블의 모든 pwd를 가져올수 있는 경우가 생깁니다.

    쿼리 결과인 ResultSet의 null 여부를 판별 즉, Mapper의 경우는

    매핑한 Class가 null인지 먼저 판별하셔야합니다.


    ResultClass abcd = 쿼리실행(params);

    if(abcd==null){

      //해당 ID는 존재 하지 않습니다.

    }else{

      //pwd 비교 처리

    }

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.