모야이건또
90
2019-10-08 13:01:20
3
102

자바에서 쿼리문 날릴때 질문입니다.(mysql)


안녕하세요

혼자 독학으로 토이 프로젝트 겸 해서 쇼핑몰을 조금씩 만들어 보고 있습니다.

회원가입에서 중복되는 아이디와 핸펀 번호가 있는지 쿼리문을 날리고 있는데

결과로 자꾸 이상한 리턴값이 와서 질문드립니다.

우선 코드는

try {

           pstmt = conn.prepareStatement("select * from user where user_id = ? or user_MobilePhone = ?");

            pstmt.setString(1,user.getUser_id());

            pstmt.setString(2,user.getUser_MobilePhone());

            rs = pstmt.executeQuery();


            while (rs.next()) {

                System.out.println(rs.getString("user_id")); (여기서 비슷한 문자열이 출력됩니다. )

                if (rs.getString("user_id").equals(user.getUser_id())) {

                    user.setId_dup(true);

                } else if (rs.getString("user_MobilePhone").equals(user.getUser_MobilePhone())){

                    user.setPhone_dup(true);

                }

                return false;

            }


} finally {

}

조건식을 where user_id=? 이런식으로 넣었는데 정확한 값이 안나오고 비슷한 문자열이 나오네요

예를들어 user.getUser_id() 가 ab이면 rs.getString("user_id")는 abc로 결과가 나오더라고요 

(if문 안에서 equals 메소드를 쓰지 않고 싶습니다. ) 그냥 쿼리 결과값이 있으면 true 셋팅 없으면 false

로 하고 싶은데 그게 안되서 println으로 찍어보니 비슷한 문자열이 자꾸 나와서요

독학으로 하고 있는데 물어볼 곳도 없고 답답해서 올려봅니다. 


요약

1. where user_id = ? 이렇게 넣었으면 예를 들어 abc를 넘겨주면 db에서 정확하게 abc만 검색되게 하고 싶습니다. = 연산자가 그런용도 아닌가요?


감사합니다.




0
0
  • 답변 3

  • kiroki
    296
    2019-10-08 13:09:42

    or user_MobilePhone = ?

    user_id 는 다르지만 MobilePhone가 같은 값이 있는거 아닌가요?

    0
  • 바히
    553
    2019-10-08 13:10:52

    OR조건으로 거셨네요.

    아이디가 조건에 일치하거나, 핸드폰번호가 일치하면 조회가 되도록 되어있으시니

    다른 아이디값이더라도 핸드폰번호가 동일한 경우 조회가 되시네요.

    0
  • 모야이건또
    90
    2019-10-08 16:21:01

    이런 ㅠㅠ 지금 확인해보니 그런거 같네요 그래서 전에 != null로 조건을 걸었을때는 폰번호가 있는 아이디가 나왔던거였네요 ㅋ 

    정말 감사합니다. 제가 너무 생각이 짧았던거 같습니다 


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