Alguém sabe como faz isso?
Ex.:
//quero que fique assim
//String sql = "SELECT * FROM clientes IN ('1','5','8') ";
String sql = "SELECT * FROM clientes IN (?) ";
pst = this.getConnection().prepareStatement(sql);
String minhaStr = "'1','5','8'";
pst.set????(1,minhaStr);
E ai?
Eheheh, teria que ser um bind para cada opção do in! e depois chamar a quantidade de vezes necessária os métodos para setar os valores!
aliás…que banco está utilizando?
repare que aumentando o números de ? na sua query, você perde o hard-parsing que alguns bancos fazem em queries parametrizadas.
geralmente isto não é problema, mas se tiver uma query em que esta etapa demora mais que a soft-parsing, você tem uma perda de performance visível…
[quote=AbelBueno]aliás…que banco está utilizando?
repare que aumentando o números de ? na sua query, você perde o hard-parsing que alguns bancos fazem em queries parametrizadas.
geralmente isto não é problema, mas se tiver uma query em que esta etapa demora mais que a soft-parsing, você tem uma perda de performance visível…[/quote]
Então, por enquanto é MySQL, mas pode ser que mude pra postgree…
por enquanto to fazendo assim:
String minhaStr = "'1','5','8'";
//quero que fique assim
//String sql = "SELECT * FROM clientes IN ('1','5','8') ";
String sql = "SELECT * FROM clientes IN ("+minhaStr+") ";
pst = this.getConnection().prepareStatement(sql);
//pst.set????(1,minhaStr);
Parece ser o geito
na verdade o jeito é:
String sql = "SELECT * FROM clientes IN (?,?,?) ";
pst = this.getConnection().prepareStatement(sql);
pst.setString(1, valor1);
pst.setString(2, valor2);
pst.setString(3, valor3);
Cara, não cheguei a testar
[code]
public Object listar(int[] param) {
String select = “select * from tchananan where tralala in (”;
for (int i = 0; i < param.length; i++) {
select += “?”;
if ( i != (param.length - 1)) {
select += “,”;
}
}
select += “)”;
PreparedStatement pst = this.getConnection().prepareStatement(select);
for (int i = 0; i < param.length; i++) {
pst.setInt(i+1, param[i]);
}
//faz a colsulta e depois é só alegria
return o;
}[/code]