Pro034 - Aula 5 Tap

6
 Tópicos Avançados de Programação - Ano:2011 Prof.Fábio Rener ARQUIVO DE CONFIGURAÇÃO PERSISTENCE.XML. Persistence Unit (persistence.xml) Um EntityManager mapeia um conjunto de classes a um banco de dados particular. Este conjunto de classes é chamado de persistence unit (unidade de persistência). Antes de você poder pensar até mesmo em criar ou consultar entidades com um entity manager, você tem que aprender a empacotar uma unidade de persistência para uso, dentro de um ambiente Java SE ou Java EE. Uma unidade de persistência está definida em um arquivo chamado persistence.xml. Este arquivo é um descriptor exigido no JPA. Um arquivo de persistence.xml pode definir um ou mais unidades de persistência. Este arquivo fica situado no diretório META-INF em: Ambientes SE, esta pasta fica no classpath da aplicação. Em uma aplicação web, este diretório fica localizado nas pasta WEB-INF\classes\META-INF. Ou seja devemos criar o arquivo sempre junto com nossas classes, ele deve ficar no raiz (src – pasta eclipse) do nosso projeto onde temos as classes de entidades. 1

Transcript of Pro034 - Aula 5 Tap

8/3/2019 Pro034 - Aula 5 Tap

http://slidepdf.com/reader/full/pro034-aula-5-tap 1/6

 Tópicos Avançados de Programação - Ano:2011 Prof.Fábio Rener

ARQUIVO DE CONFIGURAÇÃO PERSISTENCE.XML.

Persistence Unit (persistence.xml)

Um EntityManager mapeia um conjunto de classes a um banco de dados particular.Este conjunto de classes é chamado de persistence unit (unidade de persistência).

Antes de você poder pensar até mesmo em criar ou consultar entidades com um entitymanager, você tem que aprender a empacotar uma unidade de persistência para uso,dentro de um ambiente Java SE ou Java EE.

Uma unidade de persistência está definida em um arquivo chamado persistence.xml.Este arquivo é um descriptor exigido no JPA. Um arquivo de persistence.xml pode

definir um ou mais unidades de persistência. Este arquivo fica situado no diretórioMETA-INF em:

Ambientes SE, esta pasta fica no classpath da aplicação. Em uma aplicação web, estediretório fica localizado nas pasta WEB-INF\classes\META-INF.

Ou seja devemos criar o arquivo sempre junto com nossas classes, ele deve ficar noraiz (src – pasta eclipse) do nosso projeto onde temos as classes de entidades.

1

8/3/2019 Pro034 - Aula 5 Tap

http://slidepdf.com/reader/full/pro034-aula-5-tap 2/6

 Tópicos Avançados de Programação - Ano:2011 Prof.Fábio Rener

Exemplo 1 (Hibernate)

<?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/persistencehttp://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

 <persistence-unit name="exemploHibernate" transaction-type="RESOURCE_LOCAL"> 

<provider>org.hibernate.ejb.HibernatePersistence</provider> 

<class>br.uniban.entity.Aluno</class>  <class>br.uniban.entity.Professor</class> 

<properties>

<property name="hibernate.connection.url"value="jdbc:mysql://localhost:3306/uniban"/>

<property name="hibernate.dialect"value="org.hibernate.dialect.MySQLDialect"/>

<property name="hibernate.connection.driver_class"value="org.gjt.mm.mysql.Driver"/>

 <property name="hibernate.connection.username" value="root"/>

  <property name="hibernate.connection.password" value="senha"/>  <property name="hibernate.hbm2ddl.auto" value="validate"/>  <property name="hibernate.show_sql" value="true"/>  <property name="hibernate.format_sql" value="true"/>

  </properties>

  </persistence-unit> 

</persistence>

Exemplo 2 (TopLink)

<?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/persistencehttp://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

  <persistence-unit name="novoExemploPU" transaction-type="RESOURCE_LOCAL">  <provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>

  <class>br.uniban.entity.Aluno</class>  <class>br.uniban.entity.Professor</class>

  <properties>

  <property name=“toplink.target-database”  value=“MySQL”  />

2

8/3/2019 Pro034 - Aula 5 Tap

http://slidepdf.com/reader/full/pro034-aula-5-tap 3/6

 Tópicos Avançados de Programação - Ano:2011 Prof.Fábio Rener

<property name="toplink.jdbc.url"value="jdbc:mysql://localhost:3306/uniban"/>

 <property name="toplink.jdbc.user" value="root"/>

  <property name="toplink.jdbc.driver" value="org.gjt.mm.mysql.Driver"/>  <property name="toplink.jdbc.password" value="senha"/>  <property name="toplink.ddl-generation" value="none"/>

  <property name="toplink.show_sql" value="true"/>

  </properties>

  </persistence-unit>

</persistence>

Exemplo 3 (Usando duas unidades de persistência no mesmo arquivo)

<?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/persistencehttp://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> <persistence-unit name="exemploHibernate" transaction-type="RESOURCE_LOCAL">

  <provider>org.hibernate.ejb.HibernatePersistence</provider> 

<class>br.uniban.entity.Aluno</class>  <class>br.uniban.entity.Professor</class> 

<properties>

<property name="hibernate.connection.url"value="jdbc:mysql://localhost:3306/uniban"/>

<property name="hibernate.dialect"value="org.hibernate.dialect.MySQLDialect"/>

<property name="hibernate.connection.driver_class"value="org.gjt.mm.mysql.Driver"/>

 <property name="hibernate.connection.username" value="root"/>

  <property name="hibernate.connection.password" value="senha"/>  <property name="hibernate.hbm2ddl.auto" value="validate"/>  <property name="hibernate.show_sql" value="true"/>  <property name="hibernate.format_sql" value="true"/> 

</properties> </persistence-unit> 

<persistence-unit name="exemploToplink" transaction-type="RESOURCE_LOCAL">  <provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>

  <class>br.uniban.entity.Aluno</class>  <class>br.uniban.entity.Professor</class>

  <properties>

  <property name=“toplink.target-database”  value=“MySQL”  />

3

8/3/2019 Pro034 - Aula 5 Tap

http://slidepdf.com/reader/full/pro034-aula-5-tap 4/6

 Tópicos Avançados de Programação - Ano:2011 Prof.Fábio Rener

<property name="toplink.jdbc.url"value="jdbc:mysql://localhost:3306/uniban"/>

 <property name="toplink.jdbc.user" value="root"/>

 <property name="toplink.jdbc.driver" value="org.gjt.mm.mysql.Driver"/>

  <property name="toplink.jdbc.password" value="senha"/>

  <property name="toplink.ddl-generation" value="none"/>  <property name="toplink.show_sql" value="true"/> 

</properties> </persistence-unit>

</persistence>

Exercícios de Fixação:

 

1) Onde o arquivo persistence.xml deve ficar em uma aplicação JSE ?

2) Qual a função do arquivo persistence.xml ?

3) Como configuramos a utilização do Hibernate ou TopLink na unidade depersistência ?

4

8/3/2019 Pro034 - Aula 5 Tap

http://slidepdf.com/reader/full/pro034-aula-5-tap 5/6

 Tópicos Avançados de Programação - Ano:2011 Prof.Fábio Rener

4) Como informamos ao Hibernate e ao TopLink qual o banco de dados que seráutilizado ?

5) Como configuramos mais de uma unidade de persistência no arquivopersistence.xml ?

6) Crie a Persistence Unit do seu projeto usando Hibernate como provider, nessaunidade de persistência deve ter as seguintes entidades mapeadas (Aluno,Professor, Turma, Curso, Disciplina)?

5

8/3/2019 Pro034 - Aula 5 Tap

http://slidepdf.com/reader/full/pro034-aula-5-tap 6/6

 Tópicos Avançados de Programação - Ano:2011 Prof.Fábio Rener

7) Crie a Persistence Unit do seu projeto usando Toplink como provider, nessaunidade de persistência deve ter as seguintes entidades mapeadas(NotaFiscal, ItemNotaFiscal, Fornecedor, Cliente, PedidoCompra)?

6