Baixe o app para aproveitar ainda mais
Prévia do material em texto
Hibernate e JPA ● Entender a diferença entre a JPA e o Hibernate; ● Usar a ferramenta de ORM JPA com Hibernate; ● Com a popularização do Java em ambientes corporativos, logo se percebeu que grande parte do tempo do desenvolvedor era gasto na codificação de queries SQL e no respectivo código JDBC responsável por trabalhar com elas ● SQL que, apesar de ter um padrão ANSI, apresenta diferenças significativas dependendo do fabricante. ● Não é simples trocar um banco de dados pelo outro. Mudança de paradigma ● A programação orientada a objetos difere muito do esquema entidade relacional ● precisamos pensar das duas maneiras para fazer um único sistema ● As tabelas geralmente possuem chave primária (PK) e podem ser relacionadas por meio da criação de chaves estrangeiras (FK) em outras tabelas. ● Quando trabalhamos com uma aplicação Java, seguimos o paradigma orientado a objetos, onde representamos nossas informações por meio de classes e atributos ● Além disso, podemos utilizar também herança, composição para relacionar atributos, polimorfismo, enumerações, entre outros. ● Isso faz com que frequentemente a todo momento devemos “transformar” objetos em registros e registros em objeto. Java Persistence API e Frameworks ORM ● Ferramentas de Objeto Relacional (ORM) ● O Hibernate é uma ferramenta ORM open source e é a líder de mercado, sendo a inspiração para a especificação Java Persistence API (JPA) ● O Hibernate nasceu sem JPA mas hoje em dia é comum acessar o Hibernate pela especificação JPA Implementações mais comuns ● Hibernate da JBoss, EclipseLink da Eclipse Foundation e o OpenJPA da Apache. Apesar do Hibernate ter originado a JPA, o EclipseLink é a implementação referencial. ● O Hibernate abstrai o seu código SQL, toda a camada JDBC e o SQL será gerado em tempo de execução ● Mais que isso, ele vai gerar o SQL que serve para um determinado banco de dados, já que cada banco fala um "dialeto" diferente dessa linguagem. ● Há também a possibilidade de trocar de banco de dados sem ter de alterar código Java, já que isso fica como responsabilidade da ferramenta. Biblioteca do Hibernate e JPA ● www.hibernate.org ● Para usar o Hibernate e JPA no seu projeto é necessário colocar todos esses JARs no classpath. Montando o Projeto ● Jars ● hibernate-entitymanager-4.2.19.Final.jar ● antlr-2.7.7.jar ● dom4j-1.6.1.jar ● hibernate-commons-annotations-4.0.2.Final.jar ● hibernate-core-4.2.19.Final.jar ● hibernate-jpa-2.0-api-1.0.1.Final.jar ● javassist-3.18.1-GA.jar ● jboss-logging-3.1.0.GA.jar ● jboss-transaction-api_1.1_spec-1.0.1.Final.jar ● postgresql-9.1-903.jdbc4.jar Configurando o persistence.xml ● Feita a adição das bibliotecas no classhpath do seu projeto, você precisará de um arquivo chamado persistence.xml que é usado pelo JPA para realizar as configurações importantes para o projeto, tais como: conexão com o banco de dados e outras configurações extras ● Na tag <persistence-unit> devemos definir qual o nome da nossa unidade de persistência, através da propriedade name que em nosso caso é crudHibernatePU ● Esse nome será usado programaticamente para que o JPA saiba quais são as configurações que ele deve usar, como um binding entre a aplicação e o arquivo persistence.xml. ● A tag provider identifica qual o framework que estamos utilizando em conjunto com o JPA, no nosso caso é o Hibernate. ● Abaixo temos várias tags <property>, a hibernate.dialect define um dialeto padrão para escrita de comandos SQL e o jdbc.driver define qual o driver do banco que estamos utilizando, em nosso caso o org.postgresql.Driver. ● Nas três últimas propriedades temos o link de conexão ao banco, o usuário e finalmente a senha. Para quem já trabalhou com o DriverManager vai notar uma pequena semelhança com a conexão JDBC que fazíamos lá. Esta propriedade apresentada configura o que o Hibernate deve fazer com o banco de dados ao ser iniciado ● No caso acima estamos definindo o seu valor como “update”, isso significa que toda vez ao iniciar a nossa aplicação o Hibernate irá checar por alterações entre o mapeamento e o banco de dados, como uma propriedade adicionada em uma classe. Quando é encontrada alguma alteração então o Hibernate executa o DDL para atualizar o banco de dados. ● É muito importante ter cuidado quando esta propriedade estiver sendo usada pois ela pode alterar o banco de dados de uma forma que você não desejava, por isso tenha certeza de que realmente precisa dela. ● Você deve criar um diretório chamado META- INF e colocar dentro do diretório src. Dentro do META-INF você deve colocar o persistence.xml. DAO ● Uma classe DAO (Data Access Object) que fará a comunicação com o banco de dados, realizando as operações básicas (CRUD). ● Toda a chamada para da aplicação será feita para nosso DAO que se responsabilizará pela comunicação com o banco de dados. ● Nosso DAO irá fazer CRUD com uma classe chamada Cliente, para isso vejamos como mapear Referência ● https://www.devmedia.com.br/jpa-e-hibernate- acessando-dados-em-aplicacoes-java/32711 Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23
Compartilhar