Exibir resultado de consulta com o banco no JTextField

Java

23/11/2011

Tudo bom pessoa, bom sou novo, estou com um grande problema com meu programa em java, é para projeto da faculdade ainda. Então o problema é, que preciso retornar os dados da consulta do banco no JtextField, fazer uma pesquisa pelo botão pesquisar e retornar os resultados nos TextField certos. o nome no TextField nome e assim por diante. Já tenho conexão com o banco, tudo feito, faz inserção de dados, só estou com este problema agora não consigo retornar os resultados nos TextField. Vi alguns exemplos aqui no forum mais não estou conseguindo, se alguem poder ajudar agradeço muito. Desde já agradeço.
Mario Alves

Mario Alves

Curtidas 0

Respostas

Mauricio Narcizo

Mauricio Narcizo

23/11/2011

posta o código que voce fez, para sabermos onde voce está com dificuldades e possiveis erros...
GOSTEI 0
Kelvin Bianchi

Kelvin Bianchi

23/11/2011

seuTextfield.setText(seuObjetoResultSet.getString(posiçãodoBD));
caso não queira uma uma String, dai você muda pro tipo do dado que quer retornar. [i]códido não testado![/i]
GOSTEI 0
Mario Alves

Mario Alves

23/11/2011

    private void BT_Pesquisar1ActionPerformed(java.awt.event.ActionEvent evt) {                                              
        try {
         
            String query = "SELECT nome,cpf FROM cliente " +
                           "WHERE cpf = '" +
                           TF_Pesquisa.getText() + "'";
            PreparedStatement stat = con_Cadastro.conexao.prepareStatement(query);
            ResultSet rs = stat.executeQuery( query );
            display( rs );
            
         
      }
      catch ( SQLException sqlex ) {
         JOptionPane.showMessageDialog(
         null, sqlex.toString() + "" + 1 , "Aviso",
         JOptionPane.WARNING_MESSAGE );
      }
        try {         
         rs.next();

         int recordNumber = rs.getInt( 1 );

         if ( recordNumber != 0 ) {
            TF_Nome.setText( String.valueOf( recordNumber));
            TF_CPF.setText( rs.getString( 2 ) );
            
         
             
         }
         else{
         JOptionPane.showMessageDialog(
         null, "Registro não encontrado!!" , "Aviso",
         JOptionPane.WARNING_MESSAGE );
         }
        }
                
      catch (SQLException erros)
        {
            erros.printStackTrace();
            JOptionPane.showMessageDialog(null, "Erro ao gravar registro. " + erros);
        }
          
      catch ( SQLException sqlex ) {
         JOptionPane.showMessageDialog(
         null, "Registro não encontrado!!" , "Aviso",
         JOptionPane.WARNING_MESSAGE );
      }
    
        
    }    
Então, este é um código que encontrei na WEB, mais ele está retornando um erro ao clicar no botão pesquisar. Se poderem me ajudar com outro código, um exemplo de como mostrar o resultado da consulta ao banco no TextField, agradeço. Abraços.
GOSTEI 0
Giverson Ortiz

Giverson Ortiz

23/11/2011

Esse exemplo pode te ajudar eu acho...
public void atualiza(){
		String comando = "select * from tabela ....."; 
		try {
			PreparedStatement prep = retornaConexao().prepareStatement(comando);
//esse retornaConexao está tratando da conexão com o bd.
			ResultSet rs = prep.executeQuery();
			
			rs.next();
			
			exp = rs.getInt("coluna"); //se for Varchar ou char usa rs.getString

			
		
			
			} catch (SQLException e){
				JOptionPane.showMessageDialog(null, "Ops, ocorreu um erro!");
				e.printStackTrace();
			} catch (Exception e){
				e.printStackTrace();
		}

	}
GOSTEI 0
Mario Alves

Mario Alves

23/11/2011

[quote="giverson"]Esse exemplo pode te ajudar eu acho...
public void atualiza(){
		String comando = "select * from tabela ....."; 
		try {
			PreparedStatement prep = retornaConexao().prepareStatement(comando);
//esse retornaConexao está tratando da conexão com o bd.
			ResultSet rs = prep.executeQuery();
			
			rs.next();
			
			exp = rs.getInt("coluna"); //se for Varchar ou char usa rs.getString

			
		
			
			} catch (SQLException e){
				JOptionPane.showMessageDialog(null, "Ops, ocorreu um erro!");
				e.printStackTrace();
			} catch (Exception e){
				e.printStackTrace();
		}

	}
Estou implementando esse, mais agora me desculpa a ignorância, mas para mostrar o código no TextField como seria? huashauhs sou péssimo em Programação...trabalho com banco de dados,mas preciso fazer isso, projeto da faculdade.
GOSTEI 0
Giverson Ortiz

Giverson Ortiz

23/11/2011

Bem, ali no exemplo a variavel exp ta recebendo o valor da coluna do banco, sendo assim, digamos que ela não está mais nula, então, primeiro você testa com System.out.println("Testando"+exp); Se ele estiver pegando certinho você pode fazer assim seucampodetexto.setText(exp);//claro que ali no exp vai ser outra variavel, tenta ai... [Edit] Se o seu campo de texto estiver em outra classe, não esquece de chamar o metodo né..
GOSTEI 0
Mario Alves

Mario Alves

23/11/2011

Muito Obrigado. Consegui, já está retornando nos TextField. Muito Obrigado pela ajuda. Mário.
GOSTEI 0
Cleber Souza

Cleber Souza

23/11/2011

O que está errado aki cara


public void mostrarId(){
     try{
      sql = "SELECT MAX(idcliente) FROM cadastrocliente";
     PreparedStatement stmt = bd.connection.prepareStatement(sql);
     ResultSet rs = stmt.executeQuery();
    rs.next();
     int valor = (rs.getInt("idcliente"));
     txtCodigoCliente.setText(""+valor);    
     }catch(SQLException e){
         JOptionPane.showMessageDialog(this, ""+e);
     }
  }

GOSTEI 0
Carlos H

Carlos H

23/11/2011

[quote="souzacleber"]O que está errado aki cara


public void mostrarId(){
     try{
      sql = "SELECT MAX(idcliente) FROM cadastrocliente";
     PreparedStatement stmt = bd.connection.prepareStatement(sql);
     ResultSet rs = stmt.executeQuery();
    rs.next();
     int valor = (rs.getInt("idcliente"));
     txtCodigoCliente.setText(""+valor);    
     }catch(SQLException e){
         JOptionPane.showMessageDialog(this, ""+e);
     }
  }

provavelmente não abriu a conexão ao banco, ou não criou a instância de bd...
GOSTEI 0
César Barros

César Barros

23/11/2011

Acho que está ocorrendo comigo a falha q Giverson relatou previamente: meu campo está em outra classe(acho). Sou muito iniciante em java! Como poderia fazer para chamar esse método? Já testei meus comandos com System.out e deu certo o problema agora é fazer aparece no Jtextfield. Outra coisa: como faço para q na consulta seja ignorado case sensitive e consiga qualquer parte do texto? Meu programa está dividido em pacotes:Conexão,DAO,Telas,Modelos...
package dao;

import factory.ConnectionFactory;
import java.sql.*;
import modelo.Doenca;
import java.sql.PreparedStatement;
/**
 *
 * @author César
 */
public class BuscaDoeDAO {
    private Connection connection;
    
    public BuscaDoeDAO(){
        this.connection=new ConnectionFactory().getConnection();
    }
    public void buscaDoe(Doenca doenca) throws SQLException{
        PreparedStatement stmt=(PreparedStatement) this.connection.prepareStatement("SELECT * FROM doenca WHERE patol LIKE ?");
        stmt.setString(1, doenca.getPatol()+"%");
        ResultSet rs=stmt.executeQuery();
        while(rs.next()){
            doenca.setPatol(rs.getString("patol"));
            System.out.println(rs.getString("patol"));
        }
        rs.close();
        stmt.close();
        connection.close();
    }
}
GOSTEI 0
POSTAR