Consulta JDBC

5 respostas
A

estou tentando retornar vallores de um Banco de Dados e esta dando erro de SqlException… segue

try { Properties file = new Properties(); file.load(new FileInputStream("sql.txt")); PreparedStatement query = DM.conexao.prepareStatement(file.getProperty("CONSULTA")); ResultSet rs = query.executeQuery("Select * from TESTE"); txtNome.setText(rs.getString(2)); } catch (IOException erro) { } catch (SQLException erro) { JOptionPane.showMessageDialog(new JFrame(),"SqlException"); }

da Erro de SqlException
o arquivo sql.txt esta certo com a linha

CONSULTA=Select * from TESTE

e ainda da erro

a variavel conexao eu conectei em cima e ta certo… no botao de inclusao funciona, agora o consulta nao…

5 Respostas

Elvis.The.Pelvis

Sempre que der erro, é bom incluir a mensagem de erro que o java gera. Ela ajuda muito.

A

Uso o Eclipse e nele nao mostrou nenhum erro

soh mostrou o sistema o showMessageDialog…

errei uma coisa no codigo ali em cima
o ResultSet ta assim

ResultSet rs = query.executeQuery();

Rafael_Steil

Nao da erro pq vc nao pediu para mostrar o erro. O que vc fez

catch (IOException erro) {
} 
catch (SQLException erro) {
    JOptionPane.showMessageDialog(new JFrame(),"SqlException");
}

eh totalmente desaconselhavel, pois se der alguma IOException vc nem ficara sabendo. Depois, utilize a variavel “erro” ( instancia do SQLException ) para saber o que aconteceu… De um erro.printStackTrace() para jogar o erro no console… ( vode pode usar outros metodos, como getMessage(), para mostrar no messageDialog… de uma olhada na api )

Rafael

A

Não sabia do lance do PrintStackTrace()
Obrigado, eu vi o erro e falava que ResultSet não era uma rows, use next()

antes de dar o getString eu coloquei rs.next() e funcionou agora.

Toda vez então eu tenho que dar um rs.next() ?
e quando por exemplo o Sql não achar nenhum valor eu tenho que dar primeiro um rs.next() e depois testar
if (rs.wasNull()… ?

Obrigado

Rafael_Steil

Sim, isso mesmo. Apos a execucao da consulta, o ponteiro eh posicionado antes do primeiro registro. Para saber se nao foram encontrados registros, eh so fazer

if (!rs.next())
    // nao foram contrados registros
else {
    // foram encontrados.. note que agora o ponteiro ja esta no primeiro registro
}

Rafael

Criado 1 de fevereiro de 2003
Ultima resposta 1 de fev. de 2003
Respostas 5
Participantes 3