四、HibernateUtil

同一个线程的currentSession是同一个。

使用HibernateUtil可以不去hibernate.cfg.xml配置绑定信息,因为我们在代码里已经将它和本地线程绑定了(线程局部变量模式--一个变量在同一个线程里是同一个)

 

复制代码
public class HibernateUtil {
    private static SessionFactory sessionFactory=null;
    private static ThreadLocal<Session> threadLocal=new ThreadLocal<Session>();
    private HibernateUtil(){
        
    }
    static{
        sessionFactory=new Configuration().configure().buildSessionFactory();
    }
    //获取全新的session
    public static Session openSession(){
        return sessionFactory.openSession();
    }
    //获取和线程关联的session
    public static Session getCurrentSession(){
        Session session=threadLocal.get();
        
        if(session==null){
            session=openSession();
            //把session设置到threadLocal相当于该session已经和线程绑定
            threadLocal.set(session);
        }
        return session;
    }
}
复制代码

 

posted @   菜鸡蔡文姬  阅读(73)  评论(0编辑  收藏  举报
编辑推荐:
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
点击右上角即可分享
微信分享提示