(RESOLVIDO) Salvando Lista no banco

4 respostas
java
Matheus_Muta

Boa noite,

Estou tentando salvar a minha lista no banco de dados, porem o codigo compila e não salva nada no banco…

segue codigo que adiciona a lista e pede pra salvar:
String value;

if(ValorRadioBtn.isSelected())
            {
                value = "sim";
            } else {
                value = "não";        
            }
            try {
                TipoPedidoModel tipoPedido = (TipoPedidoModel) TipoPedidoCmbBox.getSelectedItem();
                SituacaoPedidoModel situacao = (SituacaoPedidoModel) SituacaoCmbBox.getSelectedItem();
                AluguelModel aluguel = new AluguelModel();
                List<ListaRomaneioModel> listaRomaneio = new ArrayList<>();
                int row = 0;
                
                for(ListaRomaneioModel objeto : listaRomaneio){
                                        
                    objeto.setListaCodigoPedido(Integer.parseInt(txtPedido.getText()));
                    objeto.setListaCodigoProduto((Integer) (jTable1.getValueAt(row, 0)));
                    listaRomaneio.add(objeto);
                    row++;
                }
                aluguel.setListaRomaneio(listaRomaneio);
                
                aluguel.setCPF_CNPJ(Long.parseLong(txtCPF_CNPJ.getText()));
                aluguel.setCodigoPedido(Integer.parseInt(txtPedido.getText()));
                aluguel.setTipoModel(tipoPedido);
                aluguel.setDataAluguel(txtDataAluguel.getText());
                aluguel.setDataRetorno(txtDataRetorno.getText());
                aluguel.setDataEvento(txtDataEvento.getText());
                aluguel.setSituacaoPedido(situacao);
                aluguel.setValor(Double.parseDouble(txtValor.getText()));
                aluguel.setOperador(Integer.parseInt(txtOperador.getText()));
                aluguel.setArredondar(value);
                aluguel.setValorArredondado(Double.parseDouble(txtValorArredondado.getText()));
                aluguel.setValorTotal(Double.parseDouble(txtValorTotal.getText()));
                            
                AluguelDAO dao = new AluguelDAO();
                dao.saveDadosAluguel(aluguel);
                dao.saveDadosRomaneio(aluguel);

           	} catch (DAOException e) {
                System.out.print("erro");
    	} catch (SQLException ex) {
                Logger.getLogger(telaAluguel.class.getName()).log(Level.SEVERE, null, ex);
            }
codigo que salva no banco:

public void saveDadosRomaneio(AluguelModel aluguel) throws DAOException, SQLException{

Connection cn = null;

PreparedStatement ps = null;
try {
            cn = getConnection();
            
            ps = cn.prepareStatement("INSERT INTO ListaRomaneio "                                
                                + "(column_codigoPedido, "
                                + "column_codigo) VALUES (?,?)");
            
            for(ListaRomaneioModel objeto : aluguel.getListaRomaneio()){
                
                ps.setInt(1, objeto.getListaCodigoPedido());
                ps.setInt(2, objeto.getListaCodigoProduto());
                ps.executeUpdate(); 
            }        
	} catch (SQLException e) {
            JOptionPane.showMessageDialog(null,"Erro para cadastrar no banco de dados!!!!");
            throw new DAOException("não foi possivel completar a operação", e);
	} finally{
            closeResources(cn, ps, null);
	}
    }

4 Respostas

Rodrigo_Void

entre compilar e obter o resultador q vc quer existe uma infinidade de problemas q podem acontecer.
Dá algum erro?
Vc está com auto commit?
Já debugou alguma vez?
A lista q vc manda tm qnts itens? destes, quais os valores deles? estas informações só são válidas qnd verificadas em debug

betofroesjr

Só completando a resposta do colega acima mostre a conexão na conexão com banco vc fez algum main para testar se está conectando corretamente?

Murilo_Medeiros

Meu caro, observe que o seu laço for esta com tamanho 0 uma vez que voce acaba de instanciar sua arraylist sem dados dentro dela… entao o laço nao executa… se voce deseja pegar todos os valores da sua JTable usando um laço mude a logica desse for !

Matheus_Muta

amigos, boa noite

mudei de for each para um for normal, primeiramente por conta de estar instanciando a lista
não me retornava nada no for each por a lista estar vazia,
e depois descobri que estava instanciando o objeto apenas uma vez
ai coloquei a instancia do objeto dentro do for e funcionou

Obrigado pelas respostas!

Criado 15 de agosto de 2018
Ultima resposta 19 de ago. de 2018
Respostas 4
Participantes 4