Ich habe das gleiche Problem gelöst, indem ich eine Zeichenfolge mit der erforderlichen Anzahl von Fragezeichen dynamisch generiert habe. Hier ist ein Ausschnitt:-
String param = "(";
for(int i=0;i<suppliers.length;i++){
param = param+"?,";
}
param = param.substring(0,param.length()-1);
param=param+")";
query = query + param;
PreparedStatement ps = connection.prepareStatement(query);
for(int i=0;i<suppliers.length;i++){
ps.setString(i+1,suppliers[i]);
}