Ir para conteúdo
Entre para seguir isso  
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

Editado por jorge danilo

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.");
    }
Editado por rnxn

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

×

Informação importante

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