1. package com.cedric.utils;
    2. import javax.persistence.EntityManager;
    3. import javax.persistence.EntityManagerFactory;
    4. import javax.persistence.Persistence;
    5. /**
    6. * 解决实体管理器工厂的浪费资源问题和耗时问题
    7. * 通过静态代码块的形式,当程序第一次访问此工具类时,创建一个公共的实体管理器工厂对象
    8. *
    9. * 第一次访问getEntityManager方法:经过静态代码块创建一个factory对象,再调用方法创建一个EntityManager对象
    10. * 第二次访问getEntityManager方法:直接通过一个已经创建好的factory对象,创建EntityManager对象
    11. */
    12. public class JpaUtils {
    13. private static EntityManagerFactory factory;
    14. static {
    15. // 1.加载配置文件,创建entityManagerFactory
    16. factory = Persistence.createEntityManagerFactory("myJpa");
    17. }
    18. /**
    19. * 获取EneieyManager对象
    20. */
    21. public static EntityManager getEntityManager(){
    22. return factory.createEntityManager();
    23. }
    24. }