Algumas dúvidas sobre DAOs  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
pepper
Smalltalk

Membro desde: 11/07/2010 15:08:08
Mensagens: 1
Offline

Boa tarde,

Já faz algum tempo que venho estudando a apostila de java para web da Caelum, durante o tempo que estudei o capítulo de JDBC anotei algumas dúvidas e não encontrei respostas para elas na internet. Gostaria de saber se podem me ajudar:

  • Como fazer SELECTs com clausulas WHERE em DAOs?
    a. Deve haver um SELECT para cada campo da tabela;
    b. SELECTs apenas para campos que interessam em pesquisas;
    c. Não devem haver SELECTs, mas sim filtragem da lista devolvida pelo SELECT de tudo.


  • E SELECTs que consideram mais de um campo da tabela?


  • Como proceder com DAOs que devem conter outros DAOs, por exemplo um 'vendedor' ao qual pertencem vários 'pedidos'?


  • Onde fechar a conexão do banco de dados para os DAOs ensinados na apostila da Caelum fj-21?
  • peczenyj
    Moderador
    [Avatar]

    Membro desde: 26/03/2006 23:25:37
    Mensagens: 3191
    Localização: Rio de Janeiro
    Offline

    O DAO mapeia um objeto em uma ou mais tabelas no banco de dados.

    Vc deveria usar o DAO da forma que fizer mais sentido. Expor todo o Banco de dados pode ser desnecessário até pq vc tem particularidades em um Banco que não tem no mundo OO.


    Agora...

    Como fazer SELECTs com clausulas WHERE em DAOs?

    Aqui o seu DAO usa jdbc e queries sql de forma explicita. Eu diria que depende, porém gerar o sql que retorna o que vc quer é util em boa parte, senão todos, dos casos. Agora imagine que o seu DAO usa Hibernate...

    http://pacman.blog.br

    'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
    [WWW]
    tnaires
    GUJ Master
    [Avatar]

    Membro desde: 22/12/2003 08:05:58
    Mensagens: 1678
    Localização: Porto Alegre/RS - Natal/RN
    Offline

    Oi.
    pepper wrote:
  • Como fazer SELECTs com clausulas WHERE em DAOs?
    a. Deve haver um SELECT para cada campo da tabela;
    b. SELECTs apenas para campos que interessam em pesquisas;
    c. Não devem haver SELECTs, mas sim filtragem da lista devolvida pelo SELECT de tudo.

  • Filtragem da lista devolvida não é muito eficiente. O melhor é trazer do banco apenas os resultados da consulta. Fazer um select para cada campo não é muito viável também. Das alternativas que você colocou, a melhor é a b.
    pepper wrote:
  • E SELECTs que consideram mais de um campo da tabela?

  • Essa pergunta eu não entendi direito. Mas o ideal é você recuperar todos os campos da entidade para que o objeto correspondente ao registro não fique inconsistente.
    pepper wrote:
  • Como proceder com DAOs que devem conter outros DAOs, por exemplo um 'vendedor' ao qual pertencem vários 'pedidos'?

  • Não faça composição de DAOs: mantenha apenas um DAO por entidade. Eles devem ser utilizados em conjunto em uma camada superior.
    pepper wrote:
  • Onde fechar a conexão do banco de dados para os DAOs ensinados na apostila da Caelum fj-21?

  • DAOs não devem abrir nem fechar conexões, tampouco transações. Injete as conexões no DAO, e antes de utilizá-lo certifique-se que existe uma transação em andamento. Dessa forma você pode usar vários DAOs na mesma transação.

    Tarso Nunes Aires

    Blog - http://cabritin.wordpress.com/
    Delicious - http://delicious.com/tnaires
    Twitter - @tnaires

     
    Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
    Ir para:   
    Powered by JForum 2.1.8 © JForum Team