Como fazer o dao

11 respostas
carvalhomarcio

eu tenho uma classe pedido e uma classe notaFiscal

a classe nota fiscal tem um atributo do tipo pedido se eu quiser listar uma nota fiscal como vou listar o atributo do tipo pedido?
está o trecho da classe notaFiscalDao:

public void getNotaFiscal(long id)throws SQLException{

PreparedStatement stmt = con.prepareStatement(select * from notaFiscal where idnota=?);

stmt.setLong(1, id);

ResultSet rs = stmt.executeQuery();

NotaFiscal notaFiscal = new NotaFiscal();

while(rs.next()){

notaFiscal.setIdNota(rs.getLong(idNota));

notaFiscal.setDataNota(rs.getDate(dataNota));

notaFiscal.setValorTotal(rs.getDouble(valorTotal));

idPedido = rs.getLong(idPedido);

}

PedidoDao pedidoDao = new PedidoDao();

notaFiscal.setPedido(pedidoDao.getPedido(idPedido));

}

aí tá um método pra listar que um prof passou como exemplo só que não dá certo!

11 Respostas

Cesimar

Qual erro que dá?

carvalhomarcio

a variável idpedido não é encontrada, a lógica desse exemplo está certa??

joede.fadel

você declarou a variável?
caso tenha declarado, a inicializou?
conecta ao banco?

verifique essas passos que eu te dei, que poderá resolver o seu problema.

carvalhomarcio

alguem tem um exemplo de dao pra eu dar uma olhada?

romarcio

Vamos dizer que vc tenha isso:

public class NotaFiscal {
	private Pedido pedido();
	
    public Pedido getPedido() {
        return pedido;
    }

    public void setPedido(Pedido pedido) {
        this.pedido = pedido;
    }	
    //outros códigos aqui
}

Então no seu dao, para setar um pedido, vc faria assim:

...
Pedido pedido = new Pedido;
pedido.setIdPedido(rs.getLong("idPedido"));
notaFiscal.setPedido(pedido);
romarcio

Pode dar uma olhada na apostila da Caelun: http://www.caelum.com.br/download/caelum-java-web-fj21.pdf

carvalhomarcio

eu tenho uma classe Pedido e uma classe NotaFiscal.

eis a classe pedido:

public class pedido{

private long idpedido;
private NotaFiscal notaFiscal;

getrs e setrs…
}

classe nota fiscal:

public class NotaFiscal{

private int idnotaFiscal;

private Pedido pedido;

}

No meu NotaFiscalDao o como eu listaria uma Nota Fiscal?

V

Quais são os campos da sua tabela?
Seu problema é dado o Id da Nota Fiscal, listar os produtos que estão nela?

Não entendi muito bem o que você deseja.

carvalhomarcio

Post 24/11/2010 16:01:19 Assunto: Re:como fazer o dao
eu tenho uma classe Pedido e uma classe NotaFiscal.

eis a classe pedido:

public class pedido{

private long idpedido;
private NotaFiscal notaFiscal;

getrs e setrs…
}

classe nota fiscal:

public class NotaFiscal{

private int idnotaFiscal;

private Pedido pedido;

}

aqui o método de listar do NotaFiscaDao só que eu acho que a lógica tá errada

public void getNotaFiscal(long id)throws SQLException{

PreparedStatement stmt = con.prepareStatement(select * from notaFiscal where idnota=?);

stmt.setLong(1, id);

ResultSet rs = stmt.executeQuery();

NotaFiscal notaFiscal = new NotaFiscal();

while(rs.next()){

notaFiscal.setIdNota(rs.getLong(idNota));

idPedido = rs.getLong(idPedido);

}

PedidoDao pedidoDao = new PedidoDao();

notaFiscal.setPedido(pedidoDao.getPedido(idPedido));
V

Sim, 1º que seu método tem que retornar alguma coisa (Um Objeto ou um Array List)

public NotaFiscal getNotaFiscal(long id)throws SQLException{ 

      PreparedStatement stmt = con.prepareStatement("select * from notaFiscal where idnota=?"); 
      stmt.setLong(1, id); 

      ResultSet rs = stmt.executeQuery(); 

      NotaFiscal notaFiscal = new NotaFiscal(); 

      while(rs.next()){ 
          notaFiscal.setIdNota(rs.getLong("idNota")); 
          idPedido = rs.getLong("idPedido"); 
        } 
return notaFiscal;
}

Não entendi este id pedido… Se você deseja inserir o retorno na coluna idpedido dentro do objeto pedido você deve fazer o seguinte.

notaFiscal.setIdNota(rs.getLong("idNota")); 
      Pedidos pedido = new Pedidos;
      pedido.setId(rs.getLong("idPedido"));
      notaFiscal.setPedido(pedido);

Na sua aplicação para visualizar você usa:

notaFiscal.getPedido().getId()
carvalhomarcio

e se eu tivesse uma lista dentro da classe Pedido?

aí está a classe

public class pedido{
  private int idpedido;
  private NotaFisal notaFiscal;
  private List<Exemplar>exe = new ArrayList<Exemplar>();

  geters e seters....
}

como ficaria para inserir um dado do tipo List<Exemplar>???

Criado 24 de novembro de 2010
Ultima resposta 25 de nov. de 2010
Respostas 11
Participantes 5