Desvendando o Hibernate



Documentos relacionados
Evento.java. package dominio;

Curso de Java. Acesso a banco de dados através do Hibernate. Todos os direitos reservados Klais

HIBERNATE Criando um projeto em Java + Hibernate do zero

Introdução ao Hibernate 3

public abstract class Pessoa extends Entidade {

DW2 Desenvolvimento Web 2

Classe Funcionario tem Endereco

Módulo 03. Mapeando Associações/Relacionamentos. Raphaela Galhardo.

Demoiselle Tutorial Documentation

JPA Java Persistence API. Prof. Ramon Chiara

Persistência de dados com o

O que fazer ao receber o Caso de Uso NOMEDAENTIDADE CRUD?

Universidade Católica do Salvador Bacharelado em Informática. Antonio Yuri Jailson do Amor Divino Felipe Souza. Tutorial: Trabalhando com JDBC

SPRING - VALIDAÇÃO. Altere o arquivo formulario.jsp como segue:

Hibernate. Mapeamento Objeto-Relacional. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

Funcionamento da Aplicação. Simulações do funcionamento. Simulação SAC

Demoiselle Nimble Guia do Usuário Emerson Saito Rodrigo Hjort Serge Rehem

Demoiselle Nimble Guia do Usuário Emerson Saito Rodrigo Hjort Serge Rehem

Este Tutorial básico irá nos orientar como salvar e carregar uma imagem a partir de banco de dados (MySQL), utilizando Hibernate e Java.

Hibernate com Anotações

Parte II Persistência entre Modelos de Dados

PROJETO ECLIPSE: Estrutura do projeto: (Dynamic Web Project) LIBS: Java WebDeveloper. Prof. Edson Belém

MANIPULAÇÃO DE BANCO DE DADOS UTILIZANDO INTERFACE GRÁFICA

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

Mapeando Entidades. Abaixo iremos mapear nossas classes. Fornecedor.java package entidades;

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

Vamos falar de Hibernate?

Lista de exercícios I - RESPOSTAS Servlets e banco de dados

Utilizando Swing com Hibernate

Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF Novembro/2005

Mapeamento Lógico/Relacional com JPA

Tutorial Hibernate + Vraptor para projetos Restful.

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

Hibernate. Mapeamento O/R Marcio Aguiar Ribeiro

Demoiselle Tutorial Módulo 2 Persistência

Introdução. Servlet. Ciclo Vida. Servlet. Exemplos. Prof. Enzo Seraphim

DATA ACCESS OBJECT (DAO)

Prática de Programação J2ME (15) Especialização em Desenvolvimento Web com Interfaces Ricas

Introdução ao Hibernate. Hibernate Mapeamento com Anotação. Projeto Desktop Uma Classe. Objetivo. Programas Utilizados

Padrão J2EE Data Access Object (DAO)

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado

Java Persistence API (JPA)

PADRÕES DE PROJETO DE SOFTWARE

insfcanceof new public switch transient while byte continue extends for int null

Mapeamento Objeto-Relacional (Object Relational Mapping)

JDBC. Prof. Márcio Bueno

POO Programação Orientada a Objetos

Particionamento de Banco com o Hibernate Shards

Faculdades Network Bacharelado em Sistemas de Informação Tópicos Avançados. Aulas 25 e 26 Exemplo de Aplicação usando JSP e MySQL

Conexão Java Mini-curso Hibernate

Projeto Java Web (WebService) LIBS:

Introdução. Configuração. Padrão POJO. Framework Pesistência de. Mapeamento Annotation. Objetos. Persistência. Java. Objetos. Prof.

INTRODUÇÃO A PERSISTÊNCIA DE DADOS COM HIBERNATE E ANNOTATION

TUTORIAL SOBRE A CONSTRUÇÃO DE APLICAÇÕES EMPREGANDO JAVA, HIBERNATE E MySQL

JavaServer Faces JSF

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Desenvolvimento de Aplicações para Internet Aula 7

JPA Com Hibernate Aula 2

Módulo 5 - JDBC java.sql - Conexão com Banco de Dados

Mapeando Relacionamentos entre Entidades JPA. Prof. Fellipe Aleixo

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

Aula 2 - Revisão de JPA (Java Persistence API)

Universidade São Judas Tadeu. Faculdade de Tecnologia e Ciências Exatas. Sistemas de Informação 3ASIN

Desmistificando o Hibernate Envers em 10 passos

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr


WebWork 2. João Carlos Pinheiro.

RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE Elio Lovisi Filho 1 Ronney Moreira de Castro 2 RESUMO

Android Banco de Dados. Ivan Nicoli

SISTEMA EXPERIMENTALL 15/11/2009. Olá! A partir de agora vamos conhecer a IDE NetBeans efetuando um micro projeto swing.

Unidade 9: Middleware JDBC para Criação de Beans

FJ-28. Desenvolvimento Ágil para a Web 2.0 com VRaptor, Hibernate e AJAX

JPA - Java Persistence API. Entity. Entity Campos e Propriedades Entity Chaves Primárias Entity Associações. Entity Manager

JPA - Java Persistence API. Entity. Entity Campos e Propriedades Entity Chaves Primárias Entity Associações. Entity Manager

JPA: Persistência padronizada em Java

Tecnologias Java JDBC. Marcio Seiji Oyamada

Grupo de Usuários Java JavaServer Faces: A mais nova tecnologia Java para desenvolvimento WEB

JHeat: framework para geração de aplicações

Tutorial de Uso com o Java

Transcrição:

Passos Iniciais Desvendando o Hibernate 1. Repetir os passos do tutorial "CRUD com Hibernate" 2. Adicionar o driver JDBC do banco Esquematizando Fontes dos Arquivos WEB-INF\classes\hibernate.cfg.xml <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">org.postgresql.driver</property> <property name="hibernate.connection.url">jdbc:postgresql://127.0.0.1:5432/basecurso</property> <property name="hibernate.connection.username">postgres</property> <property name="hibernate.connection.password">admin</property> <property name="connection.pool_size">1</property> <property name="dialect">org.hibernate.dialect.postgresqldialect</property> <property name="cache.provider_class">org.hibernate.cache.nocacheprovider</property> <property name="show_sql">true</property> <property name="hibernate.hbm2ddl.auto">create</property> <!-- update --> <!-- Mapeamentos --> <mapping resource="pessoa.hbm.xml" /> <mapping resource="aluno.hbm.xml" /> <mapping resource="professor.hbm.xml" /> <mapping resource="endereco.hbm.xml" /> <mapping resource="turma.hbm.xml" /> </session-factory> Desvendando o Hibernate 1 / 8

</hibernate-configuration> WEB-INF\classes\Pessoa.hbm.xml <class name="mapa.pessoa"> <id name="id"><generator class="increment" /></id> <property name="nome" /> <property name="telefone" /> <property name="email" /> <one-to-one name="endereco" class="mapa.endereco" cascade="save-update" /> </class> WEB-INF\classes\Aluno.hbm.xml <joined-subclass name="mapa.aluno" extends="mapa.pessoa"> <key column="pessoa_id" /> <property name="matricula" /> <set name="turmas" table="turma_has_aluno" inverse="true"> <key column="aluno_pessoa_id"/> <many-to-many class="mapa.turma" column="turma_id" /> </set> </joined-subclass> WEB-INF\classes\Professor.hbm.xml <joined-subclass name="mapa.professor" extends="mapa.pessoa"> <key column="pessoa_id" /> <property name="titulo" /> <set name="turmas" inverse="true"> <key column="pessoa_professor_id"/> <one-to-many class="mapa.turma" /> </set> </joined-subclass> WEB-INF\classes\Endereco.hbm.xml <class name="mapa.endereco"> <id name="id" column="pessoa_id"> <generator class="foreign"><param name="property">pessoa</param></generator> </id> <property name="rua" /> Desvendando o Hibernate 2 / 8

<property name="bairro" /> <property name="complemento" /> <property name="cidade" /> <property name="estado" /> <property name="cep" /> <one-to-one name="pessoa" class="mapa.pessoa" constrained="true" /> </class> WEB-INF\classes\Turma.hbm.xml <class name="mapa.turma"> <id name="id"><generator class="increment" /></id> <property name="nome" /> <many-to-one name="professor" class="mapa.professor" column="professor_pessoa_id" /> <set name="alunos" table="turma_has_aluno"> <key column="turma_id" /> <many-to-many class="mapa.aluno" column="aluno_pessoa_id" /> </set> </class> mapa\pessoa.java public class Pessoa { private String nome; private String telefone; private String email; private Endereco endereco; public Integer getid() { return id; public void setid(integer id) { this.id = id; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public String gettelefone() { return telefone; public void settelefone(string telefone) { this.telefone = telefone; public String getemail() { return email; public void setemail(string email) { this.email = email; public Endereco getendereco() { return endereco; public void setendereco(endereco endereco) { this.endereco = endereco; mapa\aluno.java public class Aluno extends Pessoa { private String matricula; private List<Turma> turmas; public String getmatricula() { return matricula; public void setmatricula(string matricula) { this.matricula = matricula; public List<Turma> getturmas() { return turmas; public void setturmas(list<turma> turmas) { this.turmas = turmas; Desvendando o Hibernate 3 / 8

mapa\professor.java public class Professor extends Pessoa { private String titulo; private List<Turma> turmas; public String gettitulo() { return titulo; public void settitulo(string titulo) { this.titulo = titulo; public List<Turma> getturmas() { return turmas; public void setturmas(list<turma> turmas) { this.turmas = turmas; mapa\endereco.java public class Endereco { private String rua; private String bairro; private String complemento; private String cidade; private String estado; private String cep; private Pessoa pessoa; public Integer getid() { return id; public void setid(integer id) { this.id = id; public String getbairro() { return bairro; public void setbairro(string bairro) { this.bairro = bairro; public String getcidade() { return cidade; public void setcidade(string cidade) { this.cidade = cidade; public String getcomplemento() { return complemento; public void setcomplemento(string complemento) { this.complemento = complemento; public String getestado() { return estado; public void setestado(string estado) { this.estado = estado; public String getrua() { return rua; public void setrua(string rua) { this.rua = rua; public String getcep() { return cep; public void setcep(string cep) { this.cep = cep; public Pessoa getpessoa() { return pessoa; public void setpessoa(pessoa pessoa) { this.pessoa = pessoa; mapa\turma.java public class Turma { private String nome; private Professor professor; private List<Aluno> alunos; public Integer getid() { return id; public void setid(integer id) { this.id = id; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public Professor getprofessor() { return professor; public void setprofessor(professor professor) { this.professor = professor; public List<Aluno> getalunos() { return alunos; Desvendando o Hibernate 4 / 8

public void setalunos(list<aluno> alunos) { this.alunos = alunos; acoes\conexao.java package acoes; import org.hibernate.sessionfactory; import org.hibernate.cfg.configuration; import org.hibernate.classic.session; public class Conexao { protected static SessionFactory factory; protected Session session; public Conexao() { factory = new Configuration().configure().buildSessionFactory(); protected void conectar() throws Throwable { session = factory.opensession(); session.begintransaction(); protected void desconectar() throws Throwable { session.gettransaction().commit(); session.close(); acoes\executar.java package acoes; import mapa.aluno; import mapa.endereco; import mapa.pessoa; public class Executar extends Conexao { public String getcomando() throws Exception { try { conectar(); Aluno aluno = new Aluno(); aluno.setnome("fernando"); aluno.settelefone("32442510"); aluno.setemail("fernando.anselmo@dfjug.org"); aluno.setmatricula("12345"); session.save(aluno); Endereco endereco = new Endereco(); endereco.setpessoa((pessoa)aluno); endereco.setrua("sqn 311 Bl L Apt 306"); endereco.setbairro("asa Norte"); endereco.setcomplemento(""); endereco.setcidade("brasília"); endereco.setestado("df"); endereco.setcep("70754120"); session.save(endereco); desconectar(); return "sucesso"; catch (Throwable e) { return e.getmessage(); Desvendando o Hibernate 5 / 8

Mesmo Trabalho com o Annotations WEB-INF\classes\hibernate.cfg.xml <...> <!-- Mapeamentos --> <mapping class="mapa.pessoa" /> <mapping class="mapa.aluno" /> <mapping class="mapa.professor" /> <mapping class="mapa.endereco" /> <mapping class="mapa.turma" /> </session-factory> </hibernate-configuration> mapa\pessoa.java import javax.persistence.cascadetype; import javax.persistence.generatedvalue; import javax.persistence.id; import javax.persistence.inheritance; import javax.persistence.inheritancetype; import javax.persistence.onetoone; @Inheritance(strategy=InheritanceType.JOINED) public class Pessoa { @Id @GeneratedValue @Column(name = "Pessoa_id") @Column(nullable = false, length = 80) private String nome; @Column(nullable = false, length = 8) private String telefone; @Column(nullable = false, length = 80) private String email; @OneToOne(cascade = CascadeType.ALL) private Endereco endereco; mapa\aluno.java import javax.persistence.manytomany; public class Aluno extends Pessoa { @Column(nullable = true, length = 6) private String matricula; @ManyToMany(mappedBy="alunos") private List<Turma> turmas; mapa\professor.java Desvendando o Hibernate 6 / 8

import javax.persistence.cascadetype; import javax.persistence.onetomany; public class Professor extends Pessoa { @Column(nullable = true, length = 80) private String titulo; @OneToMany(cascade = CascadeType.ALL, mappedby="professor") private List<Turma> turmas; mapa\endereco.java import javax.persistence.generatedvalue; import javax.persistence.id; public class Endereco { @Id @GeneratedValue @Column(nullable = true, length = 60) private String rua; @Column(nullable = true, length = 60) private String bairro; @Column(nullable = true, length = 80) private String complemento; @Column(nullable = true, length = 60) private String cidade; @Column(nullable = true, length = 2) private String estado; @Column(nullable = true, length = 8) private String cep; mapa\turma.java import javax.persistence.cascadetype; import javax.persistence.generatedvalue; import javax.persistence.id; import javax.persistence.jointable; import javax.persistence.joincolumn; import javax.persistence.manytomany; import javax.persistence.manytoone; public class Turma { @Id Desvendando o Hibernate 7 / 8

@GeneratedValue @Column(name = "Turma_id") @Column(nullable = true, length = 80) private String nome; @ManyToOne @JoinColumn(name = "Professor_Pessoa_id") private Professor professor; @ManyToMany(cascade = CascadeType.ALL) @JoinTable(name = "Turma_has_Aluno", joincolumns = { @JoinColumn(name = "Turma_Aluno_id"), inversejoincolumns = { @JoinColumn(name = "Pessoa_id") ) private List<Aluno> alunos; Desvendando o Hibernate 8 / 8