Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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.
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.
@Table define o nome da tabela no banco de dados @SequenceGenerator mapeia uma seqncia do BD @GeneratedValue permite gerar o cdigo usando seqncia mapeada.
@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.
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.;
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
<?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.