一、环境

SSH环境,查询用的是基于Hibernate的配置文件构建了一个SessionFactory,主要代码如下

public class HibernateUtil {
    private static ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
    private static Configuration configuration = null;
    public static SessionFactory sessionFactory;
    static {
        try {
            configuration = new Configuration().configure("/hibernate.cfg.xml");
            sessionFactory = configuration.buildSessionFactory();
        } catch (HibernateException e) {
            System.out.println("解析xml和创建Session工厂error");
            e.printStackTrace();
        }
    }

    public static Session getSession() {
        
        Session session = threadLocal.get();
        if (session == null) {
            session = sessionFactory.openSession();
            threadLocal.set(session);
        }
        //Session session=sessionFactory.getCurrentSession();
    
        return session;
    }
    
    // ThreadLocal可以隔离多个线程的数据共享,因此不再需要对线程同步
        public static final ThreadLocal<Session> session
            = new ThreadLocal<Session>();
        //创建Session
        public static Session currentSession()
            throws HibernateException
        {
            //通过线程对象.get()方法安全创建Session
            Session s = session.get();
            // 如果该线程还没有Session,则创建一个新的Session
            if (s == null)
            {
                s = sessionFactory.openSession();
                // 将获得的Session变量存储在ThreadLocal变量session里
                session.set(s);
            }
            return s;
        }
        //关闭Session
        public static void closeSession()
            throws HibernateException
        {
            Session s = session.get();
            if (s != null)
                s.close();
            session.set(null);
        }
        
        
                    
            
}
View Code

相关文章:

  • 2021-10-11
  • 2021-08-14
  • 2021-04-22
  • 2022-03-03
  • 2022-02-17
  • 2021-06-27
  • 2021-08-06
  • 2021-11-04
猜你喜欢
  • 2021-03-31
  • 2021-11-02
  • 2022-12-23
  • 2021-10-31
  • 2022-12-23
  • 2021-09-06
  • 2022-12-23
相关资源
相似解决方案