Nome de coluna dinamicamente

Olá pessoal!
Tem como eu setar o nome da coluna dinamicamente no PreparedStatement?
Eu fiz isso:

String query = "SELECT ? FROM Tabela";
.
.
.
PreparedStatement ps = connection.prepareStatement(query);
ps.setObject(1, "campo");

Aí ele me devolveu o nome da coluna, mas eu queria o valor dela!!!
Não sei se to fazendo errado ou se não é possível! Se alguém souber…

da uma pesquisada sobre ResultSetMetaData

se você fizer:

ResultSet rs = ps.executeQuery();
String valor = rs.getString(“campo”);

isso te retorna o valor da coluna…

Acho que o estais tentando fazer não funciona. Olha o que está na API da Sun:

Ou seja, só para a entrada de parâmetros. Acho que no teu caso tu não vai poder fugir da concatenação. Só tem de tomar cuidado de onde tu pega os campos pra evitar SQL injection.

T+

Digaê Romulin!

Um PreparedStatement só serve para injetar os valores em uma instrução SQL, e não os nomes dos campos ou tabelas. Nesse caso você vai ter que concatenar mesmo.

Até mais :wink:

Valeu galera pela força!!! Valeu CD1 hehe …
No caso, eu troquei a concatenação pelo “replaceAll” … só pra ficar mais “arrumado” o código!