Camada de Persistência com DAO versus JPA na Prática
Luiz Carlos da Silva Júnior (juninhof5@gmail.com)
Marcos Alberto Lopes da Silva (malopes21@gmail.com)
Utilize e entenda o funcionamento da API JDBC com DAO e a API JPA, e um exemplo simples da utilização destas APIs.
Muitas aplicações empresariais do mundo real requerem acesso a dados de negócio em um armazenamento persistente e a maioria normalmente usam sistema de gerenciamento de banco de dados como armazenamento persistente. Desde suas primeiras versões a plataforma Java oferece acesso a dados através da API JDBC, que trabalha no mesmo nível do banco, sendo o acesso as informações armazenadas feito através de comandos SQL. A partir da versão 5 foi introduzida a Java persistente API (JPA) que é uma especificação baseada no conceito POJOs (Plain Old Java Objects) que incorpora idéias de renomados frameworks de persistência para padronizar o mapeamento O/R em Java. Com base nessas duas APIs de persistência será apresentado uma aplicação que utiliza JDBC e JPA para podermos entender melhor as diferenças entre essas APIs. Na parte de JDBC será utilizado o padrão DAO que é um dos mais conhecidos e utilizados no mercado.
DAO
O DAO (Data Access Object) é um padrão do catálogo J2EE patterns. Um DAO implementa o mecanismo de acesso para se trabalhar com uma fonte de dados específica. Um componente de negócio fica exposto apenas à interface do DAO, que esconde toda a complexidade relativa à interação com a fonte de dados sendo utilizada. Como a interface de um DAO não se altera quando sua implementação precisa ser modificada, este padrão permite alterar a fonte de dados sendo utilizada numa aplicação sem afetar os componentes de negócios que fazem uso deste. Quando utilizamos DAO é comum utilizarmos também o padrão abstract Factory. Esse pattern sugere que no lugar do uso do operador new, usarmos um outro objeto responsável por fabricar nossos objetos DAO. Nesta classe estarão definidos