Hibernate com JPA Prática

Slides:



Advertisements
Apresentações semelhantes
Exemplo de Projeto Vamos criar agora um projeto exemplo para verificar as condições de crédito de um conjunto de indivíduos; Nosso primeiro conjunto de.
Advertisements

Instalação e Configuração
Programação em Java Prof. Maurício Braga
Banco de Dados I Aula 20.
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Utilitários Marco Antonio. Enum Como o nome sugere, é uma enumeração de opções para uma determinada situação A principal vantagem é limitar as opções.
Introdução a JSF Marco Antonio.
Collections Marco Antonio, Arquiteto de Software – TJDF Atualizado Dezembro/2008.
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
Relatórios Marco Antonio Software Architect Agosto
Marco A. S. Reis EJB Acesso Remoto Marco A. S. Reis
Session Bean Marco A. S. Reis. Camada de negócio Fazem parte da camada de negócio as classes que contém os métodos que irão gerar a aplicação. A medida.
Prof. Alessandro J. de Souza
Fábio Shiguemi Suzuki Jessica Hofer Lopez Mirella Camilla C. O. Braga
Java Conexão com Banco de Dados
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS ACESSO A BANCO DE DADOS COM O JDBC Prof. Thiago Pereira Rique
SIGPEC Sistema Integrado de Gestão de Pessoas e Competências
28.5 Instruções para instalar o MySQL e o MySQL Conector/J
Professor Victor Sotero
1 Hibernate Introdução Caio Nakashima
Caio Nakashima Hibernate Associação Caio Nakashima
Tecnologias para Internet
B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1.
Unidade I: “Dê um mergulho rápido”
Programação Orientada a Objetos com Java
Projeto Sistema de Gestão Bibliográfica (SGB) Fábrica de Software INF - UFG.
JAVA Orientação a Objetos
Hibernate Mapeamento O/R.
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
GERENCIANDO PORTAIS COM O CMS Prof. Bruno Catiari - Faculdade São Mateus.
Introdução a aplicativos Java
Como instalar e utilizar a ferramenta Google Drive
Instalação  A tela abaixo é a primeira a aparecer durante a instalação do Caché 5. O diretório selecionado será usado para salvar alguns arquivos usados.
Introdução ao Hibernate
Hibernate Java avançado – PCC Jobson Ronan
Hibernate Java avançado – PCC Jobson Ronan
Visite nosso site ! - Soluções em Geoprocessamento Distribuidor autorizado da MicroImages Visite nosso site.
Como criar/configurar uma rede doméstica!
Prof. Alexandre Monteiro Recife
Prof. Roberto Rosa Aula 9.  Agora vamos inserir dados no Banco de Dados. Para isso precisamos de 3 coisas:  Netbeans instalado.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Acessando o WI Após fazer o deploy pelo Tomcat, digite
LPII Professora Lucélia. Pacotes Um pacote em Java é um diretório onde ficam armazenadas uma ou mais classes. Geralmente as classes com a mesma afinidade.
Hibernate Mapeamento Objeto-Relacional
Instalação do GNF-e Para instalar o programa do GNF-e serão utilizados os seguintes executáveis: -Dotnetfx (IExpress Setup); -Vjredist (IExpress Setup);
Configuração do Ambiente de programação
Hibernate + JBoss Mapeamento O-R em aplicações corporativas Ricardo Cavalcanti Jobson Ronan
Entity Beans Marco Antonio Arquiteto de Software Dezembro/2007.
Implementação Orientada a Objetos – Aula 03
Laboratório I Mateus Raeder Material baseado nos originais da Profa. Denise Bandeira.
Prof.: Bruno Rafael de Oliveira Rodrigues. Construtor é bloco declarado que é chamado no momento em que o Objeto é criado (instanciado). Todas as classes.
Análise Léxica Prof. Alexandre Monteiro
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Hibernate Mapeamento Objeto-Relacional Aula Prática I
Hibernate – Introdução rápida Jobson Ronan
Redes Configurações e teste.
DFS – Distributed File System
WebRatio.
Modificadores Programação II.
Leo Silva Leonardo Murta Luiz Viana Persistência em Java.
Utilizando subversion como controle de versão
Desenvolvimento WEB II Aula 3 – Conexão com o Banco de Dados
Curso Básico de Android
Acesso à Dados – ZEOS x Delphi
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
Java Módulo II Projeto Final.
Programação Java Márcio Igo Optativa II UESPI. Modelo de Dados Classe Pessoas  idPessoa: int  idade: int  primeiroNome: string  ultimoNome: string.
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
Atividade ASP.NET Portal da Memoria Atividade Desenvolver uma aplicação ASP.NET com funcionalidade similar à existente no site centenário.ifrn.edu.br utilizando.
Prof.: Jean Carlo Mendes
Transcrição da apresentação:

Hibernate com JPA Prática

Definição da Aplicação Pequeno sistema de gerencia de projetos contendo as seguintes entidades: Projeto, Atividade e Responsável.

Utilizaremos Netbeans IDE 6.8 ou superior, banco de dados MySQL ou Derby e Hibernate 3.x .

Criando novo Projeto e Configurando o hibernate. Criar um novo aplicativo Java Arquivo -> Novo Projeto -> Java -> Aplicativo Java Configurar o Hibernate Adicionar Bilbiotecas botão direito sobre a pasta bibliotecas escolha a opção Adicionar Biblioteca procure por “Hibernate JPA” clique em adicionar Preparar Banco de Dados Adicionar biblioteca do DB (MySQL, por ex., MySQL JDBC Driver.)

Preparar a estrutura do Projeto Criar os seguintes pacotes: conf -> configuração do hibernate modelos - > pacote para as classes de domínio Projeto, Atividade e Responsável) testes -> classes que vamos utilizar para fazer nossos testes. utils -> classes utilitárias.

Configuração do Hibernate Adicionar hibernate.cfg.xml no pacote conf botão direito do mouse sobre o pacote conf e escolha a opção novo. No lado categorias selecione Hibernate e do lado direito a opção Assistente Para configuração do Hibernate

Configuração do Hibernate Clicando no botão próximo o assistente solicita o nome arquivo Alterar pasta para src/conf, porque nós queremos que nosso arquivo fique no pacote conf.

Conexão com uma fonte de dados Pode ter sido previamente criada, mas vamos criar uma nova conexão. Escolha no combobox a opção Nova Conexão com Banco de Dados

Conexão com uma fonte de dados

Conexão com uma fonte de dados Nome do Driver: Driver JDBC do banco que vamos conectar: MySQL Host: Máquina onde nosso banco de dados está instalado e esperando por conexão: localhost (nossa própria máquina) Porta: porta em que o mysql está escutando, aguardando por conexão, se nenhuma porta é informada é utilizada a porta padrão a 3306. Banco de Dados: Nome da nossa fonte de dados, onde nossas tabelas serão criadas. Se ainda não foi criado seu banco, use o seu mysql. Chamar banco de dados de projectdb Nome Usuário: Nome do usuário usado para acessar seu banco de dados, vamos usar o usuário administrador que no mysql é o usuário root. Senha: Informe a senha usada para acessar o banco de dados.

Alterando a configuração atual Exibir na console toda e qualquer instrução enviada para o banco de dados. Na janela de configuração do arquivo vamos selecionar a opção Propriedades Opcionais -> Propriedades de Configurar -> Adicionar escolha a opção hibernate.show_sql e valor digite true.

Primeira Entidade: Responsavel package modelos; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; /** * criando em 10/11/2010 * @author bacala */ @Entity public class Responsavel implements Serializable { @Id @GeneratedValue private long id; private String matricula; private String nome; // métodos get e set public long getId() { return id; } ……

Anotações JPA É importante observar que os imports feitos, foram todos do pacote javax.persitence e não do pacote do hibernate, isso porque nós queremos seguir a especificação e não apenas usar o hibernate de forma pura. Detalhando as anotações: @Entity -> a classe é uma entidade e que seus objetos serão persistido em banco de dados @Id -> Informa o atributo que será nossa chave primaria. @GeneratedValue -> Informa que o valor desse atributo será gerado automaticamente. Em nenhum momento fizemos referencia à nenhum nome de tabela ou coluna do banco de dados, isso porque estamos convencionando que o nome da tabela será o mesmo nome da classe e que o nome das colunas será o mesmo nome dos atributos. @Table(name=”nome_tabela”) informa o nome da tabela com a qual nossa entidade seria mapeada. @Column(“nome_coluna”) informa nomes diferente para nossas colunas da tabela.

Informar ao Hibernate as classes informar para o hibernate a localização das classes de entidade para que ele possa reconhecer como uma entidade mapeada. abrir arquivo hibernate.cfg.xml e na opção mapeamentos vamos adicionar a classe Responsavel.

Adicionando a entidade Responsavel

Lendo a configuração e criando um BD package utils; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.tool.hbm2ddl.SchemaExport; public class GerarBancoDeDados { public static void main(String...args) { /** * AnnotationConfiguration - responsavel por ler arquivo hibernate.cfg.xml e reconhecer nossas entidades mapeadas. **/ AnnotationConfiguration configuration = new AnnotationConfiguration(); * o método configure solicita o caminho do arquivo hibernate.cfg.xml. Caso o arquivo * não esteja em um pacote diferente do pacote desta classe, não seria necessario * informá-lo . Simplesmente usaríamos configuration.configure(). configuration.configure("conf/hibernate.cfg.xml"); SchemaExport export = new SchemaExport(configuration); * create espera dois argumento booleanos. O primeira informa * se queremos que ele exiba o script sql gerado. O segundo se queremos * que ele execute diretamente as instruções no banco de dados. export.create(true, true); }

Criando um utilitário package utils; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.AnnotationConfiguration; public class HibernateUtil { private static SessionFactory factory; /** * escopo estático. É a primeira coisa executa em uma classe e só executada apenas uma vez. Objetivo é carregar nossas configurações do * hibernate para que sessões possam ser criadas. * O hibernate possui uma classe responsavel por funciona como uma fábrica de sessões: classe SessionFactory **/ static { AnnotationConfiguration configuration = new AnnotationConfiguration(); configuration.configure("conf/hibernate.cfg.xml"); factory = configuration.buildSessionFactory(); } * sempre que quisermos uma session do hibernate apenas chamamos * HibernateUtils.getSession(); public static Session getSession(){ return factory.openSession();

Testando... package testes; import modelos.Responsavel; import org.hibernate.Session; import utils.HibernateUtil; public class TestaEntidadeResponsavel { public static void main(String...args) { /** * Solicitando uma sessão para nossa fábrica de sessões. **/ Session session = HibernateUtil.getSession(); * Criando um objeto da nossa entidade que será salvo no banco Responsavel responsavel = new Responsavel(); responsavel.setMatricula("AM-123"); responsavel.setNome(“Mané "); /** * Iniciando uma transação com o banco de dados **/ session.getTransaction().begin(); * chamando o método save do hibernate para persistir nosso objeto session.save(responsavel); * encerrando e comitando nossa transação session.getTransaction().commit(); }

Recuperando o objeto gravado... ... Responsavel resp = (Responsavel) session.load(Responsavel.class, 1L); System.out.println("Nome: " +resp.getNome());

Bibliografia http://quebrandoparadigmas.wordpress.com/2010/03/21/introducao-a-jpa-com-hibernate/