Qual seria o melhor padrão para as conexões, pensei em dois modos :
Modo 1 :
Cada função cria e fecha sua própria conexão
Função ‘inserir’
EntityManagerFactory factory = Persistence.createEntityManagerFactory("Tarefa");
EntityManager manager = factory.createEntityManager();
manager.getTransaction().begin();
manager.persist(t);
manager.getTransaction().commit();
manager.close();
factory.close();
Modo 2:
Uma conexão static para a classe, caso a conexão esteja fechada, um método é usado para abrir.
private static EntityManagerFactory factoryClasse = Persistence.createEntityManagerFactory("Tarefa");
private static EntityManager managerClasse = factoryClasse.createEntityManager();
private static void conectar()
{
factoryClasse = Persistence.createEntityManagerFactory("Tarefa");
managerClasse = factoryClasse.createEntityManager();
}
public static Boolean inserir(Tarefa t)
{
try
{
if(managerClasse.isOpen() == false || factoryClasse.isOpen() == false)
conectar();
managerClasse.getTransaction().begin();
managerClasse.persist(t);
managerClasse.getTransaction().commit();
}
catch(Exception e)
{
e.printStackTrace();
return false;
}
return true;
}
Em termos de velocidade e/ou segurança qual a mais adequada?