将字符串数组传递给预准备语句

时间:2010-09-29 14:06:13

标签: java database

  

可能重复:
  java PreparedStatement

我可以制作准备好的陈述

SELECT * FROM STUDENTS WHERE STUDENT_ID IN ?

进入

SELECT * FROM STUDENTS WHERE STUDENT_ID IN (1,2,3)

鉴于学生ID的集合是一个字符串数组。

1 个答案:

答案 0 :(得分:2)

我认为您最好的解决方案是动态生成in子句:IN (?,?,?,?),然后为数组/集合中的每个值调用preparedStatement.setInt(i + 1, myValues[i])。坏消息是,每当你有不同数量的值时,你最终会得到一个不同的preparedStatement。

请参阅重复的问题:PreparedStatement IN clause alternatives?