Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xxwpxx

Consultando dados pelo ID

Recommended Posts

Galera fiz de tudo, mas não consigo instanciar o método consultar, queria que ele fizesse a seguinte função de acordo com a imagem a baixo.
Untitled-1.jpg?1412131740

Digito o ID do Produto que está no banco de dados e insere nos JTextField


Classe Mercadoria:

   public void consulta(){
   
      try{
         String sql = "select * from produtos where id = ?";
         st = conn.prepareStatement(sql);
         st.setInt(1,getId());
         ResultSet resultSet = st.executeQuery();
      
         while(resultSet.next()){ // so espero um resultado por isso uso o IF para verificar 
         
            setNome(resultSet.getString("nome")); // coloca-se os dados
            setDescricao(resultSet.getString("descricao"));
            setPreco(resultSet.getDouble("preco"));
            setQuantidade(resultSet.getInt("quantidade"));
         }
         st.close(); // fecha consulta
      }
      catch(Exception e){
         //e.printStackTrace();
         System.out.println("Não foi possivel consultar!");
      }
   }


Classe TelaPrincipal:

   public void consultarDados()
   {
      mercadoria = new Mercadoria();
      
      mercadoria.setId(Integer.parseInt(JOptionPane.showInputDialog("Digite o ID para consulta: ")));   
      
      mercadoria.consulta();
     
   }

JTextField:

tId
tNome
tDescricao
tPreco
tQuantidade

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola boa tarde, bom voce deverá pegar os dados que vem de seu método de consulta por exemplo:

getId()
getNome()
getDescricao()
...

e inserir nos respectivos campos..

 

tId
tNome
tDescricao
tPreco
tQuantidade

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em qual parte do método de consulta você está usando a informação que veio do BD? Você pode inserir os dados diretamente na tela como sugerido pelo @jorge danilo dentro do método de consulta.

 

Ou se preferir, pode também realizar a consulta e retornar um objeto da classe Mercadoria (caso exista). Por exemplo:

   // classe MercadoriaDAO

    public Mercadoria consulta(int id){
        Mercadoria mercadoria = null;
        try {
            PreparedStatement pstm = con.prepareStatement("select * from produtos where id = ?");
            pstm.setInt(1, id);
            
            ResultSet result = pstm.executeQuery();
            while(result.next()){
                mercadoria = new Mercadoria();
                mercadoria.setId(result.getInt("id"));
                mercadoria.setNome(result.getString("nome"));
                mercadoria.setDescricao(result.getString("descricao"));
                mercadoria.setQuantidade(result.getInt("quantidade"));
                mercadoria.setPreco(result.getDouble("preco"));
            }
            pstm.close();
        } catch (SQLException e){}
        return mercadoria;
    }

E então no método responsável por exibir os dados tela, ficaria assim:

public void bar(){
        int id = Integer.parseInt(JOptionPane.showInputDialog("Digite o ID para consulta: "));
        
        MercadoriaDAO dao = new MercadoriaDAO();
        Mercadoria mercadoria = dao.consulta(id);
        
        if(mercadoria != null){
            tela.tId.setText(mercadoria.getId());
            tela.tNome.setText(mercadoria.getNome());
            // os outros JTextFields...
        } else JOptionPane.showMessageDialog(null, "Nenhuma mercadoria encontrada.");
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.