Duvida Java combox banco mysql

Pessoal boa tarde estou querendo passar os dados de um produto cadastrado no banco de dados Mysql, em uma combox quando já abrir a tela, automático, porem ele mostra mensagem null.
E também quero mostrar o id automaticamente quando abrir a tela,mas está dando erro null
Vou mandar o código para vocês verem.

Esse é o código em que eu coloco os método para ele abrir sozinho.

Connection con =null ;
ResultSet rs = null ;
PreparedStatement pst= null;

Conecta conexao = new Conecta();

public Vendas2() throws ClassNotFoundException , SQLException {
    initComponents();
    setLocationRelativeTo(null);
  setSize(400,300);

  this.selecionarId();//carregar automaticamente

  this.adicionaCombo();
  con=Conecta.conexao();
}

Esse é o método que pega os dados da tabela.
public void adicionaCombo(){//int vend_codvenda
String sql = “SELECT * FROM tb_fornecedor”;

    try {
          pst=con.prepareStatement(sql);
          
          
           rs=pst.executeQuery();
         //informações dos produtos cadastrados.
         while(rs.next()){
             
              
               cmbUser.addItem(rs.getString("for_fantasia"));
         }
        
    } catch (Exception e) {
         JOptionPane.showMessageDialog(null,"Erro na Inserção :\n Erro:"+e.getMessage());
    }


}

Esse é o método em que eu pego o id,mas também não sei como colocar ele em um textField.
public void selecionarId(){
String sql = “SELECT for_id * FROM tb_fornecedor”;

    try {
        pst=con.prepareStatement(sql);
       
         
           rs=pst.executeQuery();
       
        while(rs.next()){
            
           
              int exp = rs.getInt("for_id");
             
             

      
        }
    } catch (Exception e) {
         JOptionPane.showMessageDialog(null,"Erro na inserção do id:\n Erro:"+e.getMessage());
    }

}

Olá Felipe,

olhei aqui e vi algo estranho.

Você chama a função adicionaCombo() mas não passa para ela o paramento de conexão. con;

Você está obtendo um erro de NullPointerException nessa função? Dê um System.out.println dentro do while() nesta função e veja se existe dados retornados da Query

Não ele me retorna null

sim ele esta retornando os dados

Felipe,

onde estão declaradas as variáveis pst e rs?

Exemplo:

1 curtida

Consegui man achei o erro e resolvi obrigado

Uma outra duvida como eu faço pra pegar um dado selecionado do combox e colocar em uma table, sendo que esses dados gravados vieram de um banco ?

Acho que tenho o código disso em algum lugar. Vou procurar e assim que achar eu te mando

1 curtida

blw vlw

try {
                Statement st;
                st = c.getConexao().createStatement();
                ResultSet rs = st.executeQuery("select * from disciplinas;");      
                if(rs!=null)
                            while(rs.next()){
                                DefaultTableModel model = (DefaultTableModel) tblTabela.getModel();
                                 model.addRow(new Object[]{rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getString(7),rs.getString(8)});
                            }
            } catch (SQLException ex) {
                Logger.getLogger(InsertDisciplinaModelo.class.getName()).log(Level.SEVERE, null, ex);
            }

Eu não entendi muito bem, como vou pegar os dados selecionado do combox e adicionar no model.addRow?

Bom dia!

Cara, tenta fazer algo assim:

private List<SelectItem> dropDownVagas;

    private void refreshDropDownTypeVacancy() {
        try {
            lstTipoVagas = tipoVagaService.selectAllByTypeTreatment(tipoAtendimento);//Aqui substitui pela seu metodo de busca no banco.

            dropDownVagas = new ArrayList<>();
            if (lstTipoVagas != null) {//Só verifica para ver se veio algo do banco e não ter exception
                lstTipoVagas.stream().forEach((v) -> {
                    dropDownVagas.add(new SelectItem(v.getIdTipoVaga(), v.getDescricao()));//Adiciona o item.
                });
            }
        } catch (Exception ex) {
            logger.error("Falha ao buscar o tipo de vaga: " + ex.getMessage());
        }
    }

Não sei o que está usuando para front-end (Primefaces, Richefaces e etc). Estou usando o Prime, mas a ideia é a mesma, então na sua view você faz isto:

<p:selectOneMenu value="#{solicitarAtendimentoBean.solicitacao.tipoVaga.idTipoVaga}"
                                                     autoWidth="false" style="width: 76%"
                                                     required="true" 
                                                     requiredMessage="O campo vaga é obrigatório.">
                                        <f:selectItem itemLabel="Selecione..." itemValue=""/>
                                        <f:selectItems value="#{solicitarAtendimentoBean.dropDownVagas}"/> </p:selectOneMenu>

Espero ter ajudado.