Convertendo o resultado do select em string

3 respostas
R

Eaí pessoal... to com o problema e a solução deve ser mega-fácil... :(

É o seguinte...

PreparedStatement pnm = TesteBDApp.conn.prepareStatement("SELECT nome FROM teste WHERE cod ="+cd+"");
            ResultSet nm = pnm.executeQuery();

//A variável cd não interfere no Select... não pra causar o erro...
com esse código estou colocando o resultado do select na variável nm, certo?

A variável nm é um Object, certo?

pra transformar em String é só usar o "nm.toString()", certo?

Porém quando faço isso aparece uma linha que não é o que eu esperava...
Estou tentando fazer isso pra colocar o valor desse Select num jTextField, mas o valor que aparece é um String maluco...

O que estou fazendo errado?

3 Respostas

A

Olá,
segue um exemplo de código:

PreparedStatement pnm = TesteBDApp.conn.prepareStatement("SELECT nome FROM teste WHERE cod =?"); pnm.setString(1,cd); ResultSet nm = pnm.executeQuery(); if(nm.next()){ String nome = nm.getString("nome"); ... }
Primeiro… passe os parâmetros no SQL com ? e depois preencha um a um com os valores corretos usando setString(), setInt(), etc. Desta forma você evitará problemas comuns de passagem de parâmetros nos SQLs. Este é o motivo porque PreparedStatements existem :wink:

Para pegar o valores como String você deve usar getString() e o nome da coluna como parâmetro, no caso “nome”.

[]'s

R

Valeu a ajuda… :-o

se for o caso de eu querer utilizar mais de um parâmetro de compração no select eu uso duas interrogações??

PreparedStatement pnm = TesteBDApp.conn.prepareStatement("SELECT nome FROM teste WHERE cod = ? , ?"); 
pnm.setString(1,cd);
pnm.setString(2,cd2);

outra coisa que fiquei em dúvida é o .next()
Li a API mas não entendi muito bem…

Agradeço novamente a ajuda que me deram no inicio! :thumbup:

A

romulo00:
Valeu a ajuda… :-o

se for o caso de eu querer utilizar mais de um parâmetro de compração no select eu uso duas interrogações??

PreparedStatement pnm = TesteBDApp.conn.prepareStatement("SELECT nome FROM teste WHERE cod = ? , ?"); 
pnm.setString(1,cd);
pnm.setString(2,cd2);

outra coisa que fiquei em dúvida é o .next()
Li a API mas não entendi muito bem…

Agradeço novamente a ajuda que me deram no inicio! :thumbup:


Olá,
cada interrogação é um valor passado para o SQL, assim ficaria:

PreparedStatement pnm = TesteBDApp.conn.prepareStatement("SELECT nome FROM teste WHERE cod = ? or cod = ?"); 
pnm.setString(1,cd);
pnm.setString(2,cd2);

O next() é usado para avançar para o próximo registro. Ele será falso só se não houver mais dado nenhum (se a SQL não retornar nada ou for o último registro).

[]'s

Criado 19 de abril de 2011
Ultima resposta 26 de abr. de 2011
Respostas 3
Participantes 2