2013-04-02 2 views
0

prepared statement에 숫자 그룹을 한 번에 입력하고 싶습니다. 여기 내가 시도한 바가 있습니다준비된 명세서에 숫자 그룹을 입력하십시오.

String parameters = "2,6,9"; 
preparedStatement = connection.prepareStatement("SELECT * FROM user WHERE id IN (?)"); 
preparedStatement.setString(1, parameters); 

그러나 이것은 오직 첫 번째 사람 (사람 2)에게만 돌려줍니다. 이것은 b/c입니다. IN 매개 변수 내에 문자열을 보내고 있습니다. 콘솔에 preparedStatement.toString()를 인쇄 할 때 DB에 전송되고있는 결과는

SELECT * FROM user WHERE id IN ('2,6,9') 

그래서 내 문제는 주변 틱입니다, 나는 어떻게 든 그들을 얻을 필요가있다. 어떤 아이디어?

Ps : 문자열을 쉼표로 분리하고 이미 구현 했으므로 그 경로로 이동할 수 있음을 알고 있습니다. 그러나 가능한 경우이를 피하고 싶습니다. 더 나은 방법을 찾고 있습니다. 모든 값을 설정

+1

글쎄, 당신은 선택의 여지가없는 것 같습니다. 이 질문을보십시오 : http://stackoverflow.com/questions/178479/preparedstatement-in-clause-alternatives – TheVillageIdiot

+0

위대한 링크, 저에게 많은 것을 대답했습니다. 감사합니다. – gmustudent

답변

1

시도 :

PreparedStatement stmt = conn.prepareStatement(
    "select id, name from users where id in (?, ?, ?)"); 
stmt.setInt(1); 
stmt.setInt(2); 
stmt.setInt(3); 

참고 :이이 question에 주어진 javaranch 페이지의 예에서입니다.

+0

링크를 가져 주셔서 감사합니다. – gmustudent

관련 문제