Duvida Java combox banco mysql

11 respostas
felipe1234

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());
    }

}

11 Respostas

o.oliveira

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

felipe1234

Não ele me retorna null

felipe1234

sim ele esta retornando os dados

o.oliveira

Felipe,

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

Exemplo:

felipe1234

Consegui man achei o erro e resolvi obrigado

felipe1234

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 ?

o.oliveira

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

felipe1234

blw vlw

o.oliveira
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);
            }
felipe1234

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

G

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.

Criado 12 de janeiro de 2017
Ultima resposta 16 de jan. de 2017
Respostas 11
Participantes 3