package util; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; /** * Hibernate工具类 * 作用: 获取session与关闭session * @author 尹涛 * */ public class HibernateUtil { // 创建私有 静态 线程对象 private static ThreadLocal<Session> TLSession = new ThreadLocal<Session>(); // 定义私有 静态conguration对象 private static Configuration configuration; // 定义 私有 静态 sessionfactory对象 private static SessionFactory sessionFactory; // 静态域: 在使用该类时,默认加载内容 static{ try { // 读取解析hibernate.cfg.xml文件 configuration = new Configuration().configure(); // 解析*.hbm.xml文件 sessionFactory = configuration.buildSessionFactory(); } catch (Exception e) { System.out.println("初始化加载异常"); e.printStackTrace(); } } /** * 获取session对象 * @return session */ public static Session currentSession(){ // 获取当前线程中的session对象 Session session = TLSession.get(); // 验证session对象是否为空 if (session == null) { // 使用工厂对象生产session对象 session = sessionFactory.openSession(); // 将session对象放入线程 TLSession.set(session); } return session; } public static void closeSession(){ // 获取当前线程中的session对象 Session session = TLSession.get(); // 清空线程中的session对象 TLSession.set(null); // 验证session是否为空 if (session != null) { // 关闭session对象 session.close(); } } }
时间: 2024-10-25 04:48:53