Inserir dados da combo no banco

2 respostas
S

Criei uma combo que retorna do banco o id e a descrição

ou seja; 2 - mecanica
3 - eletrica

precisavar salvar no banco o codigo e a descrição do servico, que sera selecionado pelo usuario.

DAO:

public boolean inserir(DomainObject domainObject) {
        Ocorrencia ocorrencia = (Ocorrencia) domainObject;

        try {




    Connection conn = Conexao.getConnection();

            //Obtendo a conexão com o BD

            //Criando a string com sql a ser executada
            String sql = "INSERT INTO ocorrencia VALUES (?,?,?,?,?,?,?)";

            //Tratando a sql  a ser executada
            PreparedStatement pst = conn.prepareStatement(sql);
            //Definindo o primeiro parâmetro

            pst.setInt(1, ocorrencia.getIDOcorrencia());


            pst.setString(2, ocorrencia.getDescricao());
            // pst.setString(3,ocorrencia.getVeiculo().getDescricao());


            //Definindo o segundo parâmetro
            pst.setString(3, ocorrencia.getData());

        



            //      pst.setString(5,Servicos.getDescricaoServ());
            pst.setString(4, ocorrencia.getVeiculo().getPlaca());


            pst.setString(5, ocorrencia.getCliente().getNomecli());

            pst.setString(6,ocorrencia.getVeiculo().getNomeVeiculo());
           

// aki o codigo eh o que esta na combo
 pst.setInt(7,ocorrencia.getServicos().getCodigoServico());
  
// a descricao da combo
  pst.setString(8, ocorrencia.getServicos().getDescricaoServico());

pst.executeUpdate();


            pst.close();

            //Fechando a conexão
            conn.close();



        } catch (Exception e) {
            return false;
        }
        return true;

meu combo

public   List Combo()  {
 List<Ocorrencia> strList = new ArrayList<Ocorrencia>();
        try{

            Connection conn = Conexao.getConnection();

            String sql = null;
            // sql = "select descricao,data_ocorrencia,servico,placa,nomecliente,nomeveiculo from ocorrencia where idocorrencia=? ";
                    sql = "select idservico,nomeservico from tiposervico ";
//select nomeservico from tiposervico inner join ocorrencia on tiposervico.idservico=ocorrencia.idservico
            PreparedStatement pst = conn.prepareStatement(sql);
         
            ResultSet rs = pst.executeQuery();

while(rs.next()){
    Ocorrencia ocorrencia = new Ocorrencia();
    Servicos servico = new Servicos();

    servico.setCodigoServico(rs.getInt("idservico"));
    servico.setNomeServico(rs.getString("nomeservico"));
    
    ocorrencia.setServicos(servico);



    strList.add(ocorrencia);




   }

pst.close();
 rs.close();


        } catch (Exception e) {

            e.printStackTrace();
            JOptionPane.showMessageDialog(null, e.getMessage());

        }



            return strList;}

visão

ublic class RegistroOcorrencia extends javax.swing.JFrame {


    public RegistroOcorrencia() {
        initComponents();
        DaoOcorrencia dao = new DaoOcorrencia();
jComboBox1.removeAllItems();
List<Ocorrencia> listacombo = dao.Combo();
int tam = listacombo.size();

    for(Ocorrencia oco : listacombo){
        jComboBox1.addItem(oco.getServicos().getCodigoServico()+"  "
                +oco.getServicos().getNomeServico());
    }
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
 Ocorrencia ocorrencia = new Ocorrencia();



        Clientee cliente = new Clientee();
        ocorrencia.setCliente(cliente);

        Servicos servicos = new Servicos();
        ocorrencia.setServicos(servicos);

        Veiculo veiculo = new Veiculo();
        ocorrencia.setVeiculo(veiculo);

        ocorrencia.setIDOcorrencia(Integer.parseInt(tfcodigo.getText()));


        ocorrencia.setDescricao(tfdescricaoocorrencia.getText());
      

  ocorrencia.setData(tfdata.getText());


// aki em vez de inserir pelo textfield era para pegar da combo

        ocorrencia.getServicos().setCodigoServico(Integer.parseInt(tftipodeservico.getText()));



        ocorrencia.getVeiculo().setPlaca(tfplaca.getText());
        ocorrencia.getCliente().setNomecli(tfcliente.getText());

        ocorrencia.getVeiculo().setNomeVeiculo(tfveiculo.getText());

 IFachada fachadaoco = (IFachada) new FachadaOcorrencia();

 FachadaOcorrencia ocorre = new FachadaOcorrencia();
try{ 
    fachadaoco.inserir(ocorrencia);

2 Respostas

F

Olá colega!

Resolveu o problema?

Aqui vai uma sugestão:

  1. crie o objeto listacombo como private logo acima do contrutor de sua classe principal:
    private List<Ocorrencia> listaCombo

  2. Popule o listaCombo como está fazendo. Não há necessidade de mostrar no jCombo o código e o nome, deixe somente o código, fica mais bonitinho… rs.

  3. No momento de utilizar o conteudo do jcombo vc poderia fazer:
    
    Ocorrerncia oco = new Ocorrencia();
    
    oco=listaCombo.get(seuJCombo.getSelectedIndex());
    

Aí é só passar o objeto para ser utilizado em seu DAO.

Qualquer coisa retorna!

Abraço

Marco Aurélio

S

Consegui fazer… Obrigado

Criado 24 de outubro de 2009
Ultima resposta 28 de out. de 2009
Respostas 2
Participantes 2