JorgitoDF 0 Denunciar post Postado Outubro 15, 2013 Bom dia a todos, Estou com uma dúvida em relação a como fazer para pegar o ID de um registro carregador numa combo box, por exemplo, uma combobox carrega e exige os registro de uma tabela do banco de dados mas preciso pegar o ID referente ao registro que será selecionado, será que alguém pode me ajudar? Aqui o código da classe DAO onde lista todos os vendedores cadastrados na tabela no BD. public List<VendedorBEAN> listarTodos() throws PersistenciaException { List<VendedorBEAN> listaVendedor = new ArrayList<VendedorBEAN>(); Connection conn = Conexao.open(); PreparedStatement pstm = null; String sql = "SELECT * FROM tb_vendedor"; try { pstm = conn.prepareStatement(sql); ResultSet resultset = pstm.executeQuery(); while (resultset.next()) { VendedorBEAN vendedorBean = new VendedorBEAN(); vendedorBean.setId_vendedor(resultset.getInt("id_vendedor")); vendedorBean.setNome_vendedor(resultset.getString("nome_vendedor")); listaVendedor.add(vendedorBean); } Conexao.close(conn, pstm, resultset); } catch (SQLException e) { e.printStackTrace(); throw new PersistenciaException(e.getMessage(), e); } return listaVendedor; } Aqui o código que converte a lista de vendedores da classe DAO em um String private String[] converteVendedor(List<VendedorBEAN> lista) { String[] result = new String[lista.size()]; for (int i = 0; i < lista.size(); i++) { VendedorBEAN vendedorBEAN = lista.get(i); result[i] = vendedorBEAN.getNome_vendedor(); } return result; } Este é o código que carrega a combobox com a String acima, porém só vem os nomes dos vendedores cadastrados no BD, como eu faço para exibir o nome e ao mesmo tempo pegar o ID do nome selecionado na combobox ?? @SuppressWarnings({ "rawtypes", "unchecked" }) private JComboBox getJcb_vendedor() { if(jcb_vendedor == null) { try { VendedorDAO vendedorDAO = new VendedorDAO(); ComboBoxModel comboVendedorModel; comboVendedorModel = new DefaultComboBoxModel(converteVendedor(vendedorDAO.listarTodos())); jcb_vendedor = new JComboBox(); jcb_vendedor.setModel(comboVendedorModel); } catch (PersistenciaException e) { e.printStackTrace(); } } return jcb_vendedor; } Compartilhar este post Link para o post Compartilhar em outros sites
tockie 1 Denunciar post Postado Outubro 18, 2013 Talvez você não saiba, mas dá para passar para o ComboBox um List de VendedorBEAN ao invés de um List de String. Só que para isso, você precisará adicionar um por um usando um forreach. Assim: //... for(VendedorBEAN vendedor: listDeVendedor){ seuComboBox.addItem(vendedor); } //... Você deve mudar também a declaração do ComboBox colocando entre "<>" o objeto que será listado. Assim: //... JComboBox<VendedorBEAN> seuComboBox = getJcb_vendedor() //... //O Model também ganha isso ComboBoxModel<VendedorBEAN> comboVendedorModel = new DefaultComboBoxModel<VendedorBEAN>(); //... //O seu método deve retornar JComboBox<VendedorBEAN>. Assim: private JComboBox<VendedorBEAN> getJcb_vendedor() { //... Assim, na hora que você usar getSelectedItem, você vai receber o objeto de VendedorBEAN e poderá, então, pegar o ID. Compartilhar este post Link para o post Compartilhar em outros sites
FreitasMT 29 Denunciar post Postado Outubro 29, 2013 o erro está no sql implemente o metodo public List<VendedorBEAN> getPeloId(int id) { List<VendedorBEAN> listaVendedor = new ArrayList<VendedorBEAN>(); Connection conn = Conexao.open(); PreparedStatement pstm = null; String sql = "SELECT * FROM tb_vendedor WHERE id=?"; try { pstm = conn.prepareStatement(sql); pstm.setInt(1, id); ResultSet resultset = pstm.executeQuery(); while (resultset.next()) { VendedorBEAN vendedorBean = new VendedorBEAN(); vendedorBean.setId_vendedor(resultset.getInt("id_vendedor")); vendedorBean.setNome_vendedor(resultset.getString("nome_vendedor")); listaVendedor.add(vendedorBean); } Conexao.close(conn, pstm, resultset); } catch (SQLException e) { e.printStackTrace(); throw new PersistenciaException(e.getMessage(), e); } return listaVendedor; } Compartilhar este post Link para o post Compartilhar em outros sites