Este documento apresenta uma introdução à Java Persistence API (JPA) e ao framework Hibernate. Ele discute como JPA e Hibernate permitem mapear objetos Java para bancos de dados relacionais de forma transparente, simplificando a persistência de dados. O documento também aborda tópicos como mapeamento de entidades, relacionamentos e estratégias de herança.
Aula com tutorial sobre JPA usando o NetBeans 7.1. Ensina passo-a-passo a geração de classes entidade e controladores (DAO) JPA no NetBeans 7.x.
O banco de dados utiliza o sgbd H2 Database.
Palestra sobre o tema "Boas Práticas com JPA 2 e Hibernate". Apresentada no FLISOL 2012 em Goiânia (GO). Não poderia deixar de citar como fonte o excelente blog da Caleum. http://blog.caelum.com.br/
Aula com tutorial sobre JPA usando o NetBeans 7.1. Ensina passo-a-passo a geração de classes entidade e controladores (DAO) JPA no NetBeans 7.x.
O banco de dados utiliza o sgbd H2 Database.
Palestra sobre o tema "Boas Práticas com JPA 2 e Hibernate". Apresentada no FLISOL 2012 em Goiânia (GO). Não poderia deixar de citar como fonte o excelente blog da Caleum. http://blog.caelum.com.br/
Doctrine é uma ferramenta de ORM (mapeamento objeto-relacional) para
PHP que sobrepõe a poderosa DBAL (camada de abstração de Banco de
Dados) PDO do PHP.
Um de seus principais recursos é a possibilidade adicional de escrever
consultas à base de dados através de um dialeto-SQL OO (orientado à
objeto) chamado DQL inspirado no HQL do Hibernate. Isto provê aos
desenvolvedores uma alternativa poderosa ao SQL que mantém o máximo de
flexibilidade sem qualquer necessidade de duplicação de código.
O tema da palestra é apresentar a ferramenta como uma solução ágil
para problemas recorrentes.
Palestra ministrada por mim e pelo Marcelo Akira no VI Forum Goiano de Software Livre. Aborda o que é ORM e como utilizar Doctrine para abstrair a camada de dados da sua aplicação.
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Apresentação submetida como requisito parcial para a conclusão da disciplina de Gerência de Projetos do Departamento de Computação da Universidade Federal de Sergipe.
Dicas e truques sobre performance em JavaEE, JPA e JSFDr. Spock
Slides da apresentação realizada no JavaOne Brasil 2010. Apresenta algumas dicas e truques para evitar problemas de performance em aplicações Web baseadas em Ajax, JSF e JPA.
Doctrine é uma ferramenta de ORM (mapeamento objeto-relacional) para
PHP que sobrepõe a poderosa DBAL (camada de abstração de Banco de
Dados) PDO do PHP.
Um de seus principais recursos é a possibilidade adicional de escrever
consultas à base de dados através de um dialeto-SQL OO (orientado à
objeto) chamado DQL inspirado no HQL do Hibernate. Isto provê aos
desenvolvedores uma alternativa poderosa ao SQL que mantém o máximo de
flexibilidade sem qualquer necessidade de duplicação de código.
O tema da palestra é apresentar a ferramenta como uma solução ágil
para problemas recorrentes.
Palestra ministrada por mim e pelo Marcelo Akira no VI Forum Goiano de Software Livre. Aborda o que é ORM e como utilizar Doctrine para abstrair a camada de dados da sua aplicação.
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Apresentação submetida como requisito parcial para a conclusão da disciplina de Gerência de Projetos do Departamento de Computação da Universidade Federal de Sergipe.
Dicas e truques sobre performance em JavaEE, JPA e JSFDr. Spock
Slides da apresentação realizada no JavaOne Brasil 2010. Apresenta algumas dicas e truques para evitar problemas de performance em aplicações Web baseadas em Ajax, JSF e JPA.
Esta palestra foi apresentada na trilha de Machine Learning do evento TDC 2016 (The Developers Conference) realizado em São Paulo, Brazil. O conteúdo aborda a história da ferramenta Weka e o seu posicionamento atual no mercado de soluções para machine learning.
Resumo:
Uma abordagem prática de como refatorar aplicações legadas utilizando Clean Code e SOLID de forma gradual e documentada.
Descrição:
Essa palestra aborda a necessidade e os desafios na hora de refatorar uma aplicação em PHP, vemos um pouco dos conhecimentos necessários para iniciar esse processo e como devemos arquitetar cada etapa do desenvolvimento.
Cada aplicação possui uma realidade diferente por isso será passado um de forma breve os conceitos de SOLID, Design Petterns e Object Calisthenic para poder aplica-los na arquitetura de cada projeto. Além de exemplos de refatoração em pontos específicos da aplicação.
Instalando arquitetura Lambda com Graphx e Elasticsearch 2.0 em uma aplicação...tdc-globalcode
A palestra contém os seguintes tópicos: - Introdução - Histórico: MapReduce e Hadoop (acho que tem um histórico em comum aí) - Buzz atual sobre Spark e Elasticsearch - Visão geral do Spark e GraphX - Visão geral do Elasticsearch 2.0 - Arquitetura Lambda e a aplicação - Código - Conclusões
Gestão de dados de investigação da recolha até ao depósito: Uma abordagem baseada em ontologias e dados ligados - Cristina Ribeiro, João Lopes, João Silva, João Castro, Ricardo Amorim
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Adam Victor Brandizzi
Documentar é difícil e trabalhoso. Mas precisa ser? Nesta apresentação, vou mostrar que, ao menos em Python, não precisa! O módulo doctest ajuda você a documentar e ainda melhora a qualidade do seu código.
Apresentação no TDC 2015 em Floranópolis, Maio 2015.
Os tópicos tratados são: machine learning, exemplo de ML em esportes e educação (learning analytics), data literacy (analfabetismo de dados)
Semelhante a Introdução a JPA e Hibernate - TDC 2012 (20)
The best way to create and deploy web apps with full-stack type safety - Mete...Frederico Maia Arantes
The best way to create and deploy web apps with full-stack type safety. In this presentation, we talked about the structure of Meteor Software, the company behind MeteorJS and Meteor Cloud, the Evolved RPC package, and why you should use MeteorJS and Meteor Cloud.
Palestra apresentada no SENAI em Goiânia, com participação especial do Galvão Bueno. :)
Aniversário de 15 anos do grupo GOJava. Tema: "Java 8 - Afinal onde usamos no dia a dia?".
4. Agenda
Persistência de dados
O que é JPA?
O que é Hibernate?
Mapeando minhas entidades
Relacionamentos
Estratégias de herança
E agora, pra onde vou?
Globalcode – Open4education
5. Persistência de dados
“A persistência de dados, na computação, refere-se
ao armazenamento não-volátil de dados, por
exemplo, o armazenamento em um dispositivo físico
como um disco rígido. Quando se grava um arquivo
no disco, por exemplo, o dado está sendo
“eternizado”, ou seja, deixa de ficar volátil na
memória RAM e passa a ser escrito num dispositivo
que armazena a informação de modo que ela não
despareça facilmente.” Wikipedia
Globalcode – Open4education
6. Persistência de dados
Em Java e desenvolvimento de software em geral,
persistência de dados significa gravar dados
Na enorme maioria dos casos, gravamos em
bancos de dados relacionais (por enquanto)
Em contra partida, desenvolvemos orientados a
objetos. Dois paradigmas bem diferentes
Globalcode – Open4education
9. Persistência de dados
Relacional x Orientado a Objetos. Dois paradigmas
bem diferentes. Como resolver as diferenças?
Como mapear as tabelas do banco de dados para
os objetos Java?
Ou deveríamos mapear os objetos para as
tabelas?
Globalcode – Open4education
10. Surge o Super Hibernate!
Globalcode – Open4education
11. O que é Hibernate?
Framework para mapeamento objeto relacional
Permite que desenvolvamos naturalmente no
modelo orientado a objetos
Persistência transparente, simplificando e
agilizando o desenvolvimento
Independente de banco de dados
Globalcode – Open4education
12. O que é Hibernate?
Mantido pela JBoss e comunidade Java
Não faz parte da especificação padrão Java
E se a JBoss parar de desenvolver o projeto?
Como ficamos? Queremos continuá-lo! Queremos
que ele se torne um padrão Java!
Globalcode – Open4education
13. O que é JPA?
Java Persistence API, especificação de
persistência de dados em Java
Baseada nos principais frameworks do mercado
como o Hibernate
É uma especificação! Precisa de uma
implementação como Hibernate, TopLink e
EclipseLink.
JPA e Hibernate não são a mesma coisa!
Show me the code!
Globalcode – Open4education
18. Mapeamento
Mapear o modelo orientado a objetos e o modelo
entidade relacionamento
@Entity: aparece antes do nome das classes que
terão objetos persistidos no BD
@Id: indica a chave primária
@GeneratedValue: indica que o valor da chave
primária deve ser gerado pelo BD quando um
registro é inserido
Globalcode – Open4education
21. Operações básicas
Persistindo: Pessoa p = new Pessoa(“Fred”);
manager.persist(p);
Buscando: manager.find(Pessoa.class,1L);
manager.getReference(Pessoa.class,1L);
Removendo: manager.remove(Pessoa.class,1L);
Globalcode – Open4education
22. Operações básicas
Atualizando: Pessoa p = manager.find(Pessoa.class, 1L);
p.setNome(“Novo Nome”);
manager.persist(p);
Listando:
Query query = manager.createQuery(“select p from Pessoa p”);
List<Pessoa> pessoas = query.getResultList();
Globalcode – Open4education
23. Relacionamentos
Os relacionamentos entre as entidades de um
domínio devem ser expressos na modelagem
através de vínculos entre classes. Podemos definir
quatro tipos de relacionamentos de acordo com a
cardinalidade.
One to One
One to Many
Many to One
Many to Many
Globalcode – Open4education
24. Relacionamentos
One to One: por exemplo, um estado é governado
por apenas um governador e um governador
governa apenas um estado.
@Entity
public class Estado {
@OneToOne
private Governador governador;
}
Globalcode – Open4education
25. Relacionamentos
One to Many: por exemplo, um departamento possui
muitos funcionários e um funcionário trabalha em
apenas em um departamento.
@Entity
public class Departamento {
@OneToMany
private List<Funcionario> funcionarios;
}
Globalcode – Open4education
26. Relacionamentos
Many to One: por exemplo, um pedido pertence a
apenas um cliente e um cliente faz muitos pedidos.
@Entity
public class Pedido {
@ManyToOne
private Cliente cliente;
}
Globalcode – Open4education
27. Relacionamentos
Many to Many: por exemplo, um livro possui muitos
autores e um autor possui muitos livros.
@Entity
public class Livro {
@ManyToMany
private List<Autor> autores;
}
Globalcode – Open4education
28. Relacionamentos
Relacionamentos bidirecionais: quando
expressamos um relacionamento entre entidades
colocando um atributo em uma das entidades,
podemos acessar a outra entidade a partir da
primeira.
Vamos ver um exemplo.
Globalcode – Open4education
29. Relacionamentos
@Entity
public class Carro {
@OneToOne
private Motor motor;
}
@Entity
public class Motor {
@OneToOne(mappedBy = “motor”)
private Carro carro;
}
Globalcode – Open4education
30. Estratégias de herança
Um conceito um pouco complexo, a princípio, de se
̧ ̧
mapear é o de Heranca. A especificacão JPA define
̂
tres estratégia para realizar o mapeamento de
̧
heranca.
Single Table
Joined
Table per Class
Globalcode – Open4education
31. Single Table
A mais comum e a que possibilita melhor
̧
desempenho em relacão a velocidade das
consultas.
Será criada apenas uma tabela com o nome da
super classe para armazenar os dados dos objetos.
Globalcode – Open4education
32. Joined
Uma tabela para cada classe da hierarquia é criada.
Em cada tabela, apenas os campos referentes aos
atributos da classe correspondente são criados.
As tabelas correspondentes às sub classes
possuem chaves estrangeiras vinculadas à tabela
correspondente à super classe.
Globalcode – Open4education
33. Table per Class
Uma tabela para cada classe concreta da hierarquia
é criada.
Os dados de um objeto não são colocados em
tabelas diferentes. Para remontar um objeto não é
̧
necessário realizar operacões de join.
A desvantagem é que não existe um vínculo
explícito no banco de dados entres as tabelas.
Globalcode – Open4education
34. E agora pra onde vou?
http://docs.oracle.com/javaee/
Apostilas da K19
Blog e apostilas da Caelum
Livro: Java Persistence With Hibernate
Documentação oficial do Hibernate
Vários Ebooks gratuitos e em inglês (WowEbook)
Globalcode – Open4education