Escolar Documentos
Profissional Documentos
Cultura Documentos
Atualmente grande parte das aplicaes devem integrar-se com um banco de dados. Ao usar um banco geralmente trabalhamos com o paradigma relacional, que nos prov mecanismos para relacionar as diferentes informaes que o nosso sistema armazenar. Para representarmos as informaes no banco, utilizamos tabelas e colunas. As tabelas geralmente possuem chaves primrias (PK) e podem ser relacionadas por meio da criao de chaves estrangeiras (FK) em outras tabelas. Conseguimos trabalhar com o banco alterando e consultando informaes atravs do SQL (Structured Query Language), que, apesar de ser um padro, apresenta diferenas significativas dependendo do fabricante.
mapeamos a classe Conta para a tabela, e tambm amarramos a um banco especfico, nesse caso o MySQL. Qualquer alterao no modelo ter um grande impacto nessa classe. Isso pode ser ilustrado comentando o atributo titular e seus getter e setter. Repare que praticamente todos os mtodos do ContaDAO param de compilar. preciso alterar o SQL e atualizar o DAO em todos esses pontos. Isso gera problemas de manuteno e diminui a produtividade. Uma boa parte do nosso tempo estamos preocupados com o mapemento da classe para a tabela.
conexao.salva(conta);
O mtodo salva da conexo faria todo o trabalho pesado para gerar o SQL adequado. No fundo, o que queremos diminuir o uso de detalhes do paradigma relacional para programar mais focado com o paradigma orientado a objetos.
praticamente o padro do mercado, levando a criao da especificao JPA (Java Persistence API) dentro do JavaEE.
Resumo
Vimos neste captulo os problemas de termos cdigos SQL em nossas classes e o desencontro entre o mundo orientado a objetos e o mundo relacional. Vimos tambm como solucionar este problema atravs de um framework ORM, que realiza o mapeamento objeto-relacional de nossas classes. Tudo isso atravs do Hibernate, uma biblioteca de mapeamento objeto-relacional que ficou to famosa ao ponto de inspirar a criao da
especificao JPA dentro do JavaEE, que por sua vez, utiliza o prprio Hibernate entre outros como implementao.