美文网首页
hibernate详解(五)Session常见的优化方式

hibernate详解(五)Session常见的优化方式

作者: 秀逼 | 来源:发表于2017-10-31 22:13 被阅读0次

将session对象与当前线程进行绑定,因为session是线程不安全的,所以必须将session与当前线程进行绑定。这就是session常见的优化。这里先采用ThreadLocal的方式来处理。

创建工厂类,封装一系列操作,返回与当前线程绑定的session对象

代码如下:

package com.iotek.basic.common;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateSessionFactory {

    private static Configuration configuration;
    private static SessionFactory sessionFactory;
    private static ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
    
    static {
        configuration = new Configuration();
        configuration.configure("hibernate.cfg.xml");
        sessionFactory = configuration.buildSessionFactory();
    }
    
    public static Session getSession() {
        Session session = threadLocal.get();
        if (session == null) {
            session = sessionFactory.openSession();
            threadLocal.set(session);
        }
        return session;
    }
    
    public static void closeSession() {
        Session session = threadLocal.get();
        if (session != null) {
            session.close();
            threadLocal.set(null);
        }
    }
}

第二种方法:可以使用SessionFactory.getCurrentSession()方法

相关文章

网友评论

      本文标题:hibernate详解(五)Session常见的优化方式

      本文链接:https://www.haomeiwen.com/subject/iaeipxtx.html