Ajuda com Pedido

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:

[code]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;

…[/code]

Classe ItensPedido

[code]public class ItemPedido {

private Produto produto;
private int quantidade;

… getters e setters[/code]

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

[code]//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);
    }
}[/code]

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

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

[code]# 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; [/code]

acrescenta um Codigo na sua classe ItemPedido

[code]# public class ItemPedido {

private Integer codigoItem

private Produto produto;

private int quantidade; [/code]

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… :slight_smile:

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

Vlw msm!