什么时候应该关闭与数据库的连接? 我在应用程序启动时创建一次连接,然后以这种方式使用实体管理器:
public void createItem(TYPE item){
em.getTransaction().begin();
em.persist(item);
em.getTransaction().commit();
}
public class Connection { //creating connection (one time)
private static final String PERSISTENCE_UNIT_NAME = "ejb";
private static EntityManagerFactory factory;
private static EntityManager em;
static{
factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
em = factory.createEntityManager();
}
public static EntityManager getEntityManager() {
return em;
}
}
我认为在每次操作(如创建)时关闭连接并在我想再次保存项目时创建新连接是没有意义的。
最佳答案
你不应该让 entitymanager 静态化,它应该是一个在你完成交易后被移除的对象。这也意味着您应该在操作完成后将其关闭。 EntitymanagerFactory 可以保持静态,每个程序运行只需要 1 个。你应该关闭它的原因是你在浪费你设备上的资源。
关于 EMF 的更长/更好的解释 https://stackoverflow.com/a/4544053/6270761
关于java - 我什么时候应该关闭实体管理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36981239/