seguinte eu tenho uma lista de Integer que serve para armazenar os valores de uma coluna, monto a query de acordo com o tamanho dessa lista e fica mais ou menos assim:
String sql = "SELECT t.codMensagem"
+ " FROM "
+ DbBase.getInstance(MensagemBean.class).getNomeTabela() + " t"
+ " WHERE"
+ " t.data = ? "
+ " and "+sqlIn("t.codGrupo", codGrupos)
+ " and t.siglaJornal = ?"
+ " and t.edicao = ?";
private String sqlIn(String campo, Collection<?> valores) {
final int LIMITE = 900;
StringBuffer buffer = new StringBuffer();
if (valores.size() > LIMITE) {
buffer.append('(');
}
for (int i = 0; i < valores.size(); i += LIMITE) {
buffer.append(campo);
int count = Math.min(LIMITE, valores.size() - i);
if (count == 1) {
buffer.append("=?");
} else {
buffer.append(" IN(");
for (int j = 0; j < count; j++) {
buffer.append("?,");
}
buffer.delete(buffer.length() - 1, buffer.length()); // deleta
// ultima
// ","
buffer.append(")");
}
}
return buffer.toString();
}
o que gostaria de saber é como fazer com o PreparedStatement para ele receber mais de um codMensagem