[Resolvido]Inserir dados na tabela com dao

oii gente, to com um probleminha, fiz o dao do cliente,videogame e pedido (contém as chaves estrangeiras de cliente e videogame), o cliente e o videogame eu consigo inserir certinho, mas o pedido nnão houve jeito de conseguir, se alguém puder me dar uma ajudinha

package model;


public class Pedido {

	private int codp;
    private Cliente cliente;
    private VideoGame videogame;
    
    
	public Pedido(int codp, Cliente cliente, VideoGame videogame) {
		super();
		this.codp = codp;
		this.cliente = cliente;
		this.videogame = videogame;
	}



	public Pedido(int codp2, int i, int j) {
		// TODO Auto-generated constructor stub
	}



	public int getCodp() {
		return codp;
	}

	public void setCodp(int codp) {
		this.codp = codp;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public VideoGame getVideogame() {
		return videogame;
	}

	public void setVideogame(VideoGame videogame) {
		this.videogame = videogame;
	}
    
    
	
}

[code]package sql;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

import model.Pedido;
import model.Cliente;
import model.VideoGame;

public class AcessoPedidoDAO implements PedidoDAO{

public void inserir(Pedido p, Cliente c, VideoGame vg) throws AcessoPedidoException
{
    Connection conexao = null;
    Statement comando = null;
    try
    {
        conexao = Conexao.getConexao();
        comando = conexao.createStatement();
        String sql = "INSERT INTO pedido VALUES ("+p.getCodp()+",'"+c.getCodc()+"',"+vg.getCodvg()+")";
        comando.executeUpdate(sql);
        comando.close();
    }
    catch(SQLException e)
    {
        throw new AcessoPedidoException("erro de inserção de pedido", e);
    }
    finally
    {
        if(conexao != null)
        {
            try
            {
                conexao.close();
            }
            catch(SQLException e2)
            {
            }
        }
    }
}

@Override
public void inserir(Pedido p) throws AcessoPedidoException {
	// TODO Auto-generated method stub
	
}	

}
[/code]

[code]package sql;

import model.Pedido;

public interface PedidoDAO
{
void inserir(Pedido p) throws AcessoPedidoException;

}
[/code]

[code]package sql;

import model.Cliente;
import model.Pedido;
import model.VideoGame;

public class TesteDAO {

public static void main(String[] args)
{
    Pedido p1 = new Pedido(66, 100, 1);
    Pedido p2 = new Pedido(67, 101, 3);
    PedidoDAO fonte = null;
    try
    {
    	
        fonte =  (PedidoDAO) new AcessoPedidoDAO();
        fonte.inserir(p1);
        fonte.inserir(p2);
        

    }
    catch(AcessoPedidoException e)
    {
        System.out.println("Acesso indisponível aos objetos");
    }
}

}[/code]

beijokaas

Acho que é o seguinte.

Vc está usando este construtor

	public Pedido(int codp2, int i, int j) {
		// TODO Auto-generated constructor stub
	}

porém ele não faz nada com os parametros recebidos.

Vc deve usar o outro construtor, e dai fazer assim:

        Cliente c = new Cliente();
        c.setId(1);

        VideoGame vg = new VideoGame();
        vg.setId(1);

        Pedido p1 = new Pedido(1,c,vg);
        Pedido p2 = new Pedido(2,c,vg);
        PedidoDAO fonte = null; 
        ...

Veja, vc tem um tipo Cliente e um tipo VideoGame na classe Pedido, então vc deve inserir um Cliente e um VideoGame e não um int como estava tentando fazer.

Consegui arrumar com a ajuda do romarcio! ficou assim:

[code]package sql;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

import model.Pedido;
import model.Cliente;
import model.VideoGame;

public class AcessoPedidoDAO implements PedidoDAO{

public void inserir(Pedido p) throws AcessoPedidoException
{
    Connection conexao = null;
    Statement comando = null;
    try
    {
        conexao = Conexao.getConexao();
        comando = conexao.createStatement();
        String sql = "INSERT INTO pedido VALUES ("+p.getCodp()+",'"+p.getCliente().getCodc()+"',"+p.getVideogame().getCodvg()+")";
        comando.executeUpdate(sql);
        comando.close();
    }
    catch(SQLException e)
    {
        throw new AcessoPedidoException("erro de inserção de pedido", e);
    }
    finally
    {
        if(conexao != null)
        {
            try
            {
                conexao.close();
            }
            catch(SQLException e2)
            {
            }
        }
    }
}

}

[/code]