Como faço para salvar o id do combobox

4 respostas
B

Tenho um jframe de viagem e nele trás os veiculos ja cadastrado em um jcombobox
quero salvar o idVeiculo no banco ao inves da string
Método abaixo para listar no jframe viagem os veiculos que já cadastrei

private void comboBoxCaminhao() {

//String sql = “select*from tbl_veiculo”;

String sql = select idVeiculo, modelo from tbl_veiculo;
try {
        
        pst = conexao.prepareStatement(sql);
        rs = pst.executeQuery();
        
        while (rs.next()) {
        cboCaminhao.addItem(rs.getString("idVeiculo")+" - "+rs.getString("modelo"));
        
       
        }
        
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
    
}

Abaixo o metodo que uso para salvar os dados do jframe viagem …

private void adicionar() {

String sql = ("insert into tbl_viagem (idVeiculo, data, idMotorista, percurso, adiantamento, freteIda, freteVolta, totalEntrada, kmIda, kmVolta, qtdLitros, media, kmPercorrido, liquidoComAdiantamento, freteReceber, liquidoViagem, oleoDiesel, arla, pedagio, comissao, acessorio, estacionamento, chapa, gorjeta, outrasDesp, totalSaida) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
    try {
        pst = conexao.prepareStatement(sql);
        //pst.setString(1, codUser.getText());
        pst.setString(1, cboCaminhao.getSelectedItem().toString());
        pst.setString(2, txtData.getText());
        pst.setString(3, cboMotorista.getSelectedItem().toString());
        pst.setString(4, txtPercurso.getText());
        pst.setString(5, txtAdiantamento.getText());
        pst.setString(6, txtFreteIda.getText());
        pst.setString(7, txtFreteVolta.getText());
        pst.setString(8, txtTotalEntrada.getText());
        pst.setString(9, txtKmIda.getText());
        pst.setString(10, txtKmVolta.getText());
        pst.setString(11, txtQtdLitros.getText());
        pst.setString(12, txtMedia.getText());
        pst.setString(13, txtKmPercorrido.getText());
        pst.setString(14, txtLiquidoAdiant .getText());
        pst.setString(15, txtFreteReceber.getText());
        pst.setString(16, txtLiquidoViagem.getText());
        pst.setString(17, txtDiesel.getText());
        pst.setString(18, txtArla.getText());
        pst.setString(19, txtPedagio.getText());
        pst.setString(20, txtComissao.getText());
        pst.setString(21, txtAcessorio.getText());
        pst.setString(22, txtEstacionamento.getText());
        pst.setString(23, txtChapa.getText());
        pst.setString(24, txtGorjeta.getText());
        pst.setString(25, txtOutro.getText());
        pst.setString(26, txtTotalSaida.getText());
         
        // Capturar o Texto do Combobox "obs converter para String
        //pst.setString(4, comboboxPerfilUser.getSelectedItem().toString());
        // validação dos campos obrigatórios
        if ((txtPercurso.getText().isEmpty()) || (txtFreteIda.getText().isEmpty()) || (txtData.getText().isEmpty()) || (txtAdiantamento.getText().isEmpty())) {
            JOptionPane.showMessageDialog(null, "Preencha Todos os Campos Obrigatórios (*)");

        } else {

            // a linha abaixo atualiza a tabela de Usuarios com os dados do Formulário
            // a estrutura abaixo é usada para confirmar a inserção de dados na tabel
            int adicionado = pst.executeUpdate();
            // a linha abaixo serve como entendimento da logica.
            //System.out.println(adicionado);
            if (adicionado > 0) {
                JOptionPane.showMessageDialog(null, "Fechamento de viagem Adicionado com Sucesso !!!");
                // as linhas abaixo limpam os campos
                txtCod.setText(null);
                cboCaminhao.setSelectedItem(null);
                txtData.setText(null);
                cboMotorista.setSelectedItem(null);
                txtPercurso.setText(null);
                txtAdiantamento.setText(null);
                txtFreteIda.setText(null);
                txtFreteVolta.setText(null);
                txtTotalEntrada.setText(null);
                txtKmIda.setText(null);
                txtKmVolta.setText(null);
                txtQtdLitros.setText(null);
                txtMedia.setText(null);
                txtLiquidoAdiant.setText(null);
                txtFreteReceber.setText(null);
                txtLiquidoViagem.setText(null);
                txtDiesel.setText(null);
                txtArla.setText(null);
                txtPedagio.setText(null);
                txtComissao.setText(null);
                txtAcessorio.setText(null);
                txtEstacionamento.setText(null);
                txtChapa.setText(null);
                txtOutro.setText(null);
                txtTotalSaida.setText(null);
              
                // Limpar campo combobox porem não é necessário, pode prejudicar o sistema
                //cboUsoPerfil.setSelectedItem(null);
            }
        }

    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
}

4 Respostas

rodriguesabner

Deixa eu entender, vc quer salvar o indicie do JComboBox ou quer salvar o ID do veículo?

B

o idVeiculo

B

aqui no jframe viagem ele ja esta me dando o id + modelo do veiculo Sem%20t%C3%ADtulo

rodriguesabner
cboCaminhao.addItem(rs.getString("idVeiculo")+" - "+rs.getString("modelo"));

Uma alternativa é pegar o primeiro caractere:

char primeira_letra = cboCaminhao.getSelectedItem().toString().charAt(0);
Criado 15 de outubro de 2019
Ultima resposta 15 de out. de 2019
Respostas 4
Participantes 2