一个简单的Hibernate工具类HibernateUtil

HibernateUtil
复制代码
 1 package com.wj.app.util;
 2 
 3 import org.hibernate.Session;
 4 import org.hibernate.SessionFactory;
 5 import org.hibernate.cfg.Configuration;
 6 import org.hibernate.service.ServiceRegistry;
 7 import org.hibernate.service.ServiceRegistryBuilder;
 8 
 9 public class HibernateUtil {
10     public static final SessionFactory sessionFactory;
11     //ThreadLocal可以隔离多个线程的数据共享,因此不需要对线程进行同步
12     public static ThreadLocal<Session> session = new ThreadLocal<Session>();
13     static
14     {
15         //使用默认配置文件创建Configuration实例
16         Configuration cfg = new Configuration()
17                                  .configure();
18  
19         //以Configuration实例来创建SessionFactory实例
20         ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
21                                                .applySettings(cfg.getProperties())
22                                                .buildServiceRegistry();
23         
24         /*ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
25         .applySettings(cfg.getProperties()).build();*/
26         
27         sessionFactory = cfg.buildSessionFactory(serviceRegistry);
28     }
29     public static Session currentSession() {
30         
31         Session s = session.get();
32         //如果该线程还没有Session,则创建一个新的Session
33         if (s == null) 
34         {
35             s = sessionFactory.openSession();
36             //将获得的Session变量存储在ThreadLocal变量session里
37             session.set(s);
38         }
39         return s;
40     }
41     
42     public static void clossSession() {
43         Session s = session.get();
44         if (s != null) 
45         {
46             s.close();            
47         }
48         session.set(null);
49     }
50 }
复制代码

 

posted @   JillWen  阅读(5796)  评论(0编辑  收藏  举报
编辑推荐:
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· Vite CVE-2025-30208 安全漏洞
· 《HelloGitHub》第 108 期
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
· MQ 如何保证数据一致性?
点击右上角即可分享
微信分享提示