封装一个简单的Hibernate SessionFactory
2024-09-03 15:34:10
封装Hibernate框架中的session工厂 ,方便很多,免去了很多重复无用的代码
package com.maya.test;
import org.hibernate.*;
import org.hibernate.cfg.*; public class HibernateUtil { private static final SessionFactory factory=buildFactory(); //建一个session工厂,调用方法构建出
private static final ThreadLocal<Session> threadlock=new ThreadLocal<Session>(); //保证线程安全,构建一个线程锁,保证该线程未结束前不会被占用 public static SessionFactory buildFactory() {
Configuration config=new Configuration();
return config.buildSessionFactory();
} public static Session getSession(){
Session session=threadlock.get();//获取线程锁中的session
if(session==null){ //如果session是空的,打开一个session
session=factory.openSession();
}
threadlock.set(session); //将session放入线程锁中,保证该线程不会被干扰
return session;
} public static void closeSession(){ //该方法为关闭session,获取session 如果不为空,那么关闭,并且将线程锁更改为空
Session session=threadlock.get();
if(session!=null){
session.close();
threadlock.set(null);
}
} }
调用:
package com.maya.test;
import org.hibernate.*;
import org.hibernate.cfg.*; import com.maya.model.Family; public class FamilyTest { public static void main(String[] args){ Family fa=new Family();
fa.setName("小明");
fa.setFirm("召唤师峡谷");
fa.setInfoCode("p003"); Session session=HibernateUtil.getSession();//获取session
try{
session.beginTransaction(); session.save(fa); session.getTransaction().commit();
}
catch(Exception e){
session.getTransaction().rollback();
}
finally{
HibernateUtil.closeSession();
}
} }
最新文章
- git pull和git fetch的区别
- 用户 &#39;IIS APPPOOL\DefaultAppPool&#39; 登录失败。
- javascript event(事件对象)详解
- Windows下使用命令行设置ip地址的DNS服务器
- 建模算法(一)&mdash;&mdash;线性规划
- 将Android Studio工程导入到Eclipse中
- 统计英文文章中各单词的频率,打印频率最高的十个单词(C语言实现)
- 常见MD5加密解密值及免费解密网站
- 每周.NET前沿技术文章摘要(2017-06-21)
- Redis这些知识点,是必须知道的!
- 《java入门第一季》之面向对象(谈谈接口)
- python 去除html 超链接href 如何实现?
- CodeForce-955C
- Python练习-列表生成式-2018.11.30
- Scalable Object Detection using Deep Neural Networks译文
- Selenium WebDriver如何模拟复制和粘贴
- 【LeetCode】65. Valid Number
- 开源项目DataTimePicker实现时间和日期的选择
- Python day17 模块介绍1(time,random)
- 全解析jQuery插件开发!很好很强大!