//quero que fique assim//String sql = "SELECT * FROM clientes IN ('1','5','8') ";Stringsql="SELECT * FROM clientes IN (?) ";pst=this.getConnection().prepareStatement(sql);StringminhaStr="'1','5','8'";pst.set????(1,minhaStr);
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!
A
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…
rcipriani
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…
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
A
AbelBueno
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);
thiago.correa
Cara, não cheguei a testar
publicObjectlistar(int[]param){Stringselect="select * from tchananan where tralala in (";for(inti=0;i<param.length;i++){select+="?";if(i!=(param.length-1)){select+=",";}}select+=")";PreparedStatementpst=this.getConnection().prepareStatement(select);for(inti=0;i<param.length;i++){pst.setInt(i+1,param[i]);}//fazacolsultaedepoisésóalegriareturno;}