Você está na página 1de 24

FAJ FACULDADE DE JAGUARINA

Diego Dyeison Willian

Mapeamento objeto-relacional (ORM) a tcnica de mapear dados originalmente armazenados de forma relacional em um modelo de objetos;
As tabelas do banco de dados so representadas atravs de classes e os registros de cada tabela so representados como instncias das classes correspondentes. Com esta tcnica, o programador no precisa se preocupar com os comandos em linguagem SQL; ele ir usar uma interface de programao simples que faz todo o trabalho de persistncia.

Princpios bsicos Classes so mapeadas a tabelas (esquemas) Instncias (objetos) so mapeadas a registros (linhas)
Classe Conta
String codigo String nome double saldo

conta 1 2 3 4

correntista Dego Luciano

saldo 1370 3450 800 8200

Willian
Dyeison

Instncia :Conta
codigo="4" nome=Dyeison" saldo=8200

Tabela Conta

O ORM justamente, a ponte entre estes dois mundos, ou seja, ele quem vai permitir que voc armazene os seus objetos no banco de dados, para isto fazendo um mapeamento dos seus objetos para as tabelas do banco de dados.

Java Persistence API, chamada apenas de JPA, uma API padro do java para persistncia que deve ser implementada por frameworks que queiram seguir o padro. A JPA define um meio de mapeamento objeto-relacional para objetos Java simples e comuns (POJOs), denominados beans de entidade. Diversos frameworks de mapeamento objeto/relacional como o Hibernate implementam a JPA. Fortemente baseado nas ideias trazidas pelo Hibernate, tanto que o lder da primeira verso dessa especificao o criador do framework

Basicamente, uma anotao uma maneira de acrescentar informaes sobre uma parte do cdigo (no mundo Java, geralmente uma classe, um campo ou mtodo) para ajudar as ferramentas entenderem como o cdigo est sendo utilizado ou para permitir a automatizao, poupando trabalho.

Anotaes utilizando JPA

Anotaes utilizando JPA (continuao)

Exemplo simples de mapeamento As quatro anotaes apresentadas a seguir podem ser usadas para mapear associaes: @OneToOne (Um para um) @OneToMany (Um para muitos) @ManyToOne (Muitos para um) @ManyToMany (Muitos para muitos) Em muitos casos, colocar a anotao no atributo da associao o suficiente. Em alguns casos, necessrio definir alguns parmetros para as anotaes.

Anotaes Mapeamento de Associaes

Anotaes Mapeamento de Associae

Exemplo simples de mapeamento

@Entity anotao associa classes Java. Determina que a classe persistente.


@Id toda classe precisa ter um identificador, que ser associado a chave primria da tabela no banco de dados. Atributos anotados com @Id sero identificadores, tanto para as instncias de objetos da classe que est sendo mapeada como para os registros da respectiva tabela.

Exemplo simples de mapeamento

@Table define o nome da tabela no banco de dados @SequenceGenerator mapeia uma seqncia do BD @GeneratedValue permite gerar o cdigo usando seqncia mapeada.

Exemplo simples de mapeamento

Gerar o Id com uso da funo de agregao MAX().

Observe que @GenericGenerator uma anotao especfica do Hibernate.

Exemplo simples de mapeamento

@Column por padro, a JPA assume que o nome de cada atributo corresponde ao mesmo nome na tabela. Para modificar o mapeamento para uma coluna com o nome diferente do atributo, deve-se utilizar o atributo name, conforme acima.

Exemplo simples de mapeamento

Exemplo simples de mapeamento

@Temporal para informaes relacionadas ao tempo (DATE, TIME e TIMESTAMP)

O Hibernate um framework para o Mapeamento ObjetoRelacional (ORM) escrito na linguagem Java, mas tambm est disponvel em .Net como o nome Nhibernate; O Hibernate uma ferramenta open source e a lder de mercado, sendo a inspirao para a especificao Java Persistence API (JPA) O principal objetivo do Hibernate diminuir a complexidade entre os programas Java, baseando-se na tcnica de ORM.;

Permite uma persistncia desenvolvimento das aplicaes;

transparente

para

Facilita o mapeamento dos atributos entre uma base de dados relacionais e o modelo de objetos de uma aplicao; Usa arquivos XML ou Anotaes na prprias classes para estabelecer esta relao; um software livre de cdigo aberto distribudo coma licena LGPL.

Arquitetura

Camada de manipulao dos objetos Camada de conexo do SGBD

<?xml version="1.0" encoding="UTF-8"?> <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> <persistence-unit name=BD2" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>br.com.bd2.hibernate.model.Pessoa</class> <class>br.com.bd2.hibernate.model.Dependente</class> <properties> <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/bd2" /> <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" /> <property name="hibernate.connection.password" value=bd2" /> <property name="hibernate.connection.username" value=bd2" /> <property name="hibernate.max_fetch_depth" value="2" /> <property name="hibernate.show_sql" value="true" /> <property name="hibernate.hbm2ddl.auto" value="create"/> </properties> </persistence-unit> </persistence>

As ferramentas de mapeamento objeto relacional surgiram para auxiliar no desenvolvimento de softwares que utilizam linguagem de programao orientada a objetos. Mapeamento objeto relacional pode ser considerado uma tecnologia recente, e que ainda necessita ser melhorada e explorada. A ferramenta Hibernate substitui os comandos SQL por mtodos que iro realizar todo o processo de armazenamento de dados, mas isso no significa que o programador no precise ter conhecimentos em de banco de dados.

http://www.jboss.org http://www.hibernate.org http://www.db4o.org http://www.oracle.com/technetwork/articles/javaee/jpa137156.html http://pt.wikipedia.org

Você também pode gostar