Recuperar valor do banco e jogar em um TextField

4 respostas
MarcioProgramador

Olá! tenho um método na minha aplicação que deve retornar um valor Auto_increment gerado no banco que é setado como texto dentro de um JTextField

O meu código ficou assim

public void recuperarDadosEmCampo() throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException
    {
        Connection c = new Conexao().conectarAFonteDeDados();
        String sql = "select max(codigo)+1 from participante";
        PreparedStatement stm = c.prepareStatement(sql);
        ResultSet rs = stm.executeQuery();
        while(rs.next())
        {
        InsereSimples.txtAutoIncrement.setText(String.valueOf(rs.getInt("codigo")));
        }
        rs.close();
        stm.close();
        c.close();
    }

Porém ele não está retornando nada... alguém tem uma idéia de como pegar e esse valor e jogar num JTextField? Obrigado!!! :)
Obs.: esse textfield nao estará editavel pelo usuário!

4 Respostas

erico_kl

1º: Tu pode trocar o while pelo if pois somente um resultado vai retornar…
2º: Tu pode utilizar sequence pra isso…
3º: Pelo que vi vc está buscando por uma coluna “codigo” mas a tua sql retorna uma coluna sem nome… ou você poderia dar um nome para o valor na sql:

e aí sim vc pode chamar

ou então

4º: Caso não queira dar nome pra coluna basta utilizar este último código acima…

erico_kl

ah… lembrando que se você auto-incrementa via sequence na hora da gravação, nem sempre o próximo registro no banco será o retorno desta sql:

pois se vc tiver 3 registros na tua tabela com códigos 1, 2 e 3 e por ventura excluir o terceiro, a sql acima retornará 3 sendo que a sequence está na posição 4…

MarcioProgramador

valeu… eu consegui fazer o que eu queria! O código ficou assim .:

Connection c = new Conexao().conectarAFonteDeDados(); String sql = "select max(codigo) as max_value from participante"; String msg = ""; PreparedStatement stm = c.prepareStatement(sql); ResultSet rs = stm.executeQuery(); if(rs.next()) msg = String.valueOf(rs.getInt(1)); rs.close(); stm.close(); c.close(); return msg;
tive só que criar uma variavel String para setar o valor recuperado no textfield, ao invés de colocar o valor direto acessando o textfield, e depois a retornar! :smiley:

R

Olá amigos!!

Eu tbm estou tentando fazer o mesmo, recuperar um dado que está no banco e mostra-lo dentro de um JTextField. Mas eu estou trabalhando com JPA.

Tenha uma tabela no banco com alguma colunas e a primeira delas é um Id. Quero na minha aplicação, digitar um Id e consultar se existe no banco aquele Id. Se existe quero listar nos JTextFields todas as informações do produto referente aquele Id encontrado.

Informações:

Tabela no banco: Produto
(Id Long Pk not null,
Referencia varchar (6),
Descrição varchar(30),
Valor decimal (6),
Fornecedor varchar (12))

Usando o controlador do JPA tenho o:

List  lista = pj.ProdutoJpaController;

for(Produto l : lista)

id.setText().equals(l.getId());

Mas não estou conseguindo recuperar o dados que existe.

Desde já agradeço a ajuda!

Fiquem com Deus!!!

Criado 8 de dezembro de 2009
Ultima resposta 19 de nov. de 2010
Respostas 4
Participantes 3