Li vários tópicos sobre PreparedStatement, quase todo mundo dá o mesmo exemplo, um insert.
Mas tentei com select, de vários jeitos e não funciona.
O código abaixo não funciona. Quando vc tenta listar (dentro do while),
diz que nome de coluna invalido. Ou seja, ele faz o select usando aqueles nomes que estao nos argumentos,
não dá erro, mas na hora de mostrar diz que o mesmo nome de coluna nao é valido.
Já se eu fizer tudo fixo, usando PreparedStatement mas não incluindo nenhum ? ele passa e mostra
as colunas também. É como se a montagem não funcionasse para Select.
public ResultSet select() throws SQLException {
String args[] = { "CODIGO", "NOME", "SALARIO" };
try {
con = new ConnectionFactory().getConnection(dbType);
stmt = con.prepareStatement("SELECT ?, ?, ? FROM MEDICOS");
// preenche os valores
stmt.setString(1, args[0]);
stmt.setString(2, args[1]);
stmt.setString(3, args[2]);
// executa
rs = stmt.executeQuery();
while(rs.next()){
System.out.println(rs.getInt(args[0]) + " - " + rs.getString(args[1]) + " - " + rs.getFloat(args[2]));
}
} catch (SQLException e) {
e.printStackTrace();
}
finally {
con.close();
stmt.close();
}
return rs;
}