Ajuda com Pedido

2 respostas
L

Olá Galera

Como podem ver a seguir, estou iniciando em Java, e tenho que fazer um projeto web.

Tenho uma classe Pedido, segue parte do código:

public class Pedido {

    private int codPedido;
    private Cliente cliente;
    private Funcionario funcionario;
    private FormaPagamento formaPagamento;
    private List<ItemPedido> itensPedido;
    private Date data;
    private double valorTotal;

...

Classe ItensPedido

public class ItemPedido {

    private Produto produto;
    private int quantidade;

... getters e setters

Minha dúvida, é como inserir essa lista de itens no banco de dados. Tenho uma classe PedidoDao, que tem o método Adiciona, segue:

//Método para Adicionar Pedido
    public void Adiciona(Pedido pedido){
        String sql = "insert into pedidos (cpf, codFuncionario, codFormaPagamento, itens, valorTotal) values (?, ?, ?, ?, ?)";
        try {
            //Prepared Statement para Inserção
            PreparedStatement stmt = connection.prepareStatement(sql);

            //Seta os Valores
            stmt.setInt(1, pedido.getCliente().getCpf());
            stmt.setInt(2, pedido.getFuncionario().getCodFuncionario());
            stmt.setInt(3, pedido.getFormaPagamento().getCodPagamento());
            
            //Como continuar aqui..




            //Executa
            stmt.execute();
            stmt.close();

        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

Alguém pode me dar uma ajuda, ou sugestão de organização da classe Pedido + Itens Pedido + Produto? Pois isso também está um pouco confuso para mim.

Agradeço desde ja!
Abraços

2 Respostas

neno

Fala Lipdk,

acho que o jeit como vc criou sua tabelas te complicou um pouco, geralmente o relacionamento de pedido com intes pedido e demuitos pra muitos, mas como vc criou um campo quantidade em itempedido vc eliminou isso.

Então na sua classe pedido não teria uma Lista de itemPedido e sim uma referencia normal

# public class Pedido {  
#   
#     private int codPedido;  
#     private Cliente cliente;  
#     private Funcionario funcionario;  
#     private FormaPagamento formaPagamento;  
#     private ItemPedido itensPedido;   //aqui
#     private Date data;  
#     private double valorTotal;

acrescenta um Codigo na sua classe ItemPedido

# public class ItemPedido {  
#     private Integer codigoItem
#     private Produto produto;  
#     private int quantidade;

e na hora de gravar vc teria que persistir primeiro a classe ItemPedido com o produto e a quantidade e etc... e depois vc chamaria seu metodo de Adiciona ja com o itemPedido setado do parametro pedido do metodo

#     public void Adiciona(Pedido pedido){  
#         String sql = "insert into pedidos (cpf, codFuncionario, codFormaPagamento, itens, valorTotal) values (?, ?, ?, ?, ?)";  //no caso o campo itens da tabela seria uma FK para a tabela ItemPedido do seu banco
#         try {  
#             //Prepared Statement para Inserção  
#             PreparedStatement stmt = connection.prepareStatement(sql);  
#   
#             //Seta os Valores  
#             stmt.setInt(1, pedido.getCliente().getCpf());  
#             stmt.setInt(2, pedido.getFuncionario().getCodFuncionario());  
#             stmt.setInt(3, pedido.getFormaPagamento().getCodPagamento()); 
               stmt.setInt(4, pedido.getItemPedido).getCodigoItem); //gravando o itemPedido;...

e por aí vai.. :)

L

Entendi cara, vou tentar fazer isso que você falou, já posto o resultado!

Vlw msm!

Criado 10 de novembro de 2010
Ultima resposta 10 de nov. de 2010
Respostas 2
Participantes 2