Upload
luiz-henrique-morais-silva
View
221
Download
0
Embed Size (px)
Citation preview
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