Olá pessoal,
algumas duvidas peguei o exemplo abaixo mas pintou umas duvidas :
-
Por que usar esse toplink da Oracle e estou jogando drive,url da MYSQL isso
não entendi pois futuramente vou usar pra outros bancos ??? o que fazer ??? -
Tentei usar a persistencia local conforme abaixo e não fez o que a persistencia
exemploJPA estava fazendo por que ??? -
Toda vez que rodo o main ele cria a tabela de novo tem como fazer pra criar uma unica vez ???
Se puderem me ajudar agradeço ???
abs
<?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="exemploJPA" transaction-type="RESOURCE_LOCAL">
<provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
<class>br.com.exemplojpa.modelo.Usuario</class>
<properties>
<property name="toplink.logging.level" value="INFO"/>
<property name="toplink.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/exemplojpa"/>
<property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="toplink.jdbc.user" value="root"/>
<property name="toplink.jdbc.password" value="root"/>
<property name="toplink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
<persistence-unit name="local" transaction-type="RESOURCE_LOCAL" >
<provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
<class>br.com.exemplojpa.modelo.Usuario</class>
<properties>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/exemplojpa" />
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="root"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="create" />
</properties>
</persistence-unit>
</persistence>
----
public class UsuarioDAO {
private EntityManagerFactory factory = null;
private EntityManager manager = null;
public UsuarioDAO() {
factory = Persistence.createEntityManagerFactory("exemploJPA");
manager = factory.createEntityManager();
}
/**
* Inserindo um usuário
*
* @param usuario
*/
public void inserirUsuario(Usuario usuario) {
EntityTransaction transaction = manager.getTransaction();
try {
transaction.begin();
manager.persist(usuario);
transaction.commit();
} catch (Exception e) {
transaction.rollback();
System.err.println("Erro: " + e.getMessage());
} finally {
manager.close();
}
}
/**
* Pesquisar um usuário
*
* @param usuario
*/
public Usuario pesquisarUsuario(Integer id, Usuario usuario) {
EntityTransaction transaction = manager.getTransaction();
Usuario retorno = null;
try {
transaction.begin();
retorno = (Usuario) manager.find(Usuario.class, id);
} catch (Exception e) {
transaction.rollback();
System.err.println("Erro: " + e.getMessage());
} finally {
manager.close();
}
return retorno;
}
}
----
public class TesteExemploJPA {
public static void main(String[] args) {
/*
* Criando o objeto usuário
*/
Usuario usuario = new Usuario();
usuario.setLogin("rafael");
usuario.setPassword("123456");
usuario.setNome("Rafael Carneiro");
/*
* Instanciando a classe de negócio
*/
UsuarioBusiness usuarioBusiness = new UsuarioBusiness();
/*
* Inserindo um usuário no banco
*/
usuarioBusiness.inserirUsuario(usuario);
/*
* Pesquisando o usuário inserido no banco
*/
Usuario usuarioBanco = new Usuario();
usuarioBanco = usuarioBusiness.pesquisarUsuario(usuario);
/*
* Mostrando o resultado da consulta no banco
*/
System.out.println();
System.out.println(" Exemplo JPA ");
System.out.println("Id: " + usuarioBanco.getId());
System.out.println("Login: " + usuarioBanco.getLogin());
System.out.println("Senha: " + usuarioBanco.getPassword());
System.out.println("Nome: " + usuarioBanco.getNome());
}
}