: 기본적으로
List<String> deals = ImmutableList.of("abc", "123", "def");
StringBuilder questionMarks = new StringBuilder("?");
for (int i=1;i<deals.size();i++) {
questionMarks.append(",?");
}
Connection conn = ...; // presumably, you already have this
PreparedStatement stmt = conn.prepareStatement(
"UPDATE my_table SET status= 'CLOSED' WHERE dlno IN (" + questionMarks + ")");
for (int i=1;i<=deals.size();i++) { // note these are 1-indexed, not 0-indexed
stmt.setString(i, deals.get(i-1));
}
stmt.executeUpdate();
당신은 UPDATE my_table SET status = 'CLOSED' WHERE dlno IN (?,?)
을 말한다 쿼리를 생성하는 것처럼 귀하의 경우에는이 보일 것이다 (매개 변수의 수에 해당하는 물음표의 수)를 입력 한 다음 stmt.setString
으로 업데이트합니다. 그런 다음 업데이트를 실행할 수 있습니다.
또한 SQLException
을 처리하고 명세서를 마무리해야합니다. 명확성을 위해 여기에서 제거되었습니다.
''' – lad2025
'StringUtils.join()'은 "java"라고 생각하게하므로 태그로 추가했습니다. 문제는 실제로 SQL보다 응용 프로그램 언어에 관한 것입니다. –