码迷,mamicode.com
首页 > 编程语言 > 详细

session和线程绑定

时间:2020-03-06 21:50:31      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:初始   utils   context   ESS   error   关闭   init   null   build   

将session和线程绑定,一个Session对应一个线程

方法一:

  修改工具类

public class HibernateUtils {
    private static SessionFactory factory;
    private static ThreadLocal<Session> threadLocal=new ThreadLocal<Session>();

    static{
        try {
            Configuration configuration=new Configuration();
            configuration.configure("hibernate.cmd.xml");
            factory = configuration.buildSessionFactory();
        }catch (ExceptionInInitializerError e){
            throw new ExceptionInInitializerError("初始化SessionFactory失败,请检查配置文件");
        }
    }

    public static Session getSession(){
        Session s=threadLocal.get();
        if (s==null) {
            threadLocal.set(factory.openSession());
        }
        s=threadLocal.get();
        return s;
    }
}public class HibernateUtils {
    private static SessionFactory factory;
    private static ThreadLocal<Session> threadLocal=new ThreadLocal<Session>();

    static{
        try {
            Configuration configuration=new Configuration();
            configuration.configure("hibernate.cmd.xml");
            factory = configuration.buildSessionFactory();
        }catch (ExceptionInInitializerError e){
            throw new ExceptionInInitializerError("初始化SessionFactory失败,请检查配置文件");
        }
    }

    public static Session getSession(){
        Session s=threadLocal.get();
        if (s==null) {
            threadLocal.set(factory.openSession());
        }
        s=threadLocal.get();
        return s;
    }
}

方法一:

  修改配置文件,工具类添加新方法

  <!--绑定线程和session,实现一个session只有一个线程。-->
  <property name="hibernate.current_session_context_class">thread</property>
/**
     *从线程上获取session
     * 配置了线程和session绑定,才能用
     * @return
     */
    public static Session getCurrnetSession(){
        return factory.getCurrentSession();
    }

  

/**  当Session和线程绑定后,hibernate,会在事务提交后自动关闭session **/

 

session和线程绑定

标签:初始   utils   context   ESS   error   关闭   init   null   build   

原文地址:https://www.cnblogs.com/jasonjson/p/12430872.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!