Como funciona esse " ? " na montagem do SELECT?

Pessoal,

Eu to tendo que dar manutenção em um programinha JAVA de outro cara… cara esse que nunca conheci… ^^

E no código eu vi umas montagem de SELECT e umas chamadas de PROCEDURES com um ponto de interrogação " ? "

querySQL = "SELECT * FROM TABELA WHERE id = ?";
String chama_proc = "{call " + minhaProcedure + "(?)}";

Eu sei que ele eh prapassagem de parâmetros, mas como funciona ??

Como saber qual parâmetro esta sendo passado ??

vlw’s !

Provavelmente ele deve estar usando um PreparedStatement. Entao, por exemplo, se o parâmetro esperado for uma String, deve-se fz da seguinte maneira:

ps.setString(1, "parametro");

Isso significa que a primeira ‘?’ vai receber a String que você passou.

Isso chama-se PreparedStatement , é uma boa pratica para montar querys, o ? refere-se ao parametro recebido pelo query, nesse exemplo abaixo tenho 2 parametros, não preciso me preocupar em colocar aquelas chatas aspas simples ou duplas.

String sql = "insert into tabela (coluna1,coluna2)values(?,?)";
PreparedStatement stmt = this.connection.prepareStatement(sql);
stmt.setString(1, "aaaa"); 
stmt.setInt(1, 2); 
stmt.execute();
stmt.close();

Hmm… saquei !

Vlw a ajuda galera !

=]