HibernateUtil.java,用于打开和关闭session,可在每一个项目里复用

 1 package cn.jbit.auction.dao;
 2
 3 import org.hibernate.Session;
 4 import org.hibernate.SessionFactory;
 5 import org.hibernate.cfg.Configuration;
 6
 7 public class HibernateUtil {
 8     // 初始化一个ThreadLocal对象
 9     private static final ThreadLocal sessionTL = new ThreadLocal();
10     private static Configuration configuration;
11     private final static SessionFactory sessionFactory;
12     static {
13         try {
14             configuration = new Configuration().configure();
15             sessionFactory = configuration.buildSessionFactory();
16         } catch (Throwable ex) {
17             throw new ExceptionInInitializerError(ex);
18         }
19     }
20     public static Session currentSession() {
21         //sessionTL的get()方法根据当前线程返回其对应的线程内部变量,
22         //也就是我们需要的Session,多线程情况下共享数据库连接是不安全的。
23         //ThreadLocal保证了每个线程都有自己的Session。
24         Session session = (Session) sessionTL.get();
25         // 如果session为null,则打开一个新的session
26         if (session == null) {
27             //创建一个数据库连接对象session。
28             session = sessionFactory.openSession();
29             // 保存该数据库连接session到ThreadLocal中。
30             sessionTL.set(session);
31         }
32         //如果当前线程已经访问过数据库了,
33         //则从sessionTL中get()就可以获取该线程上次获取过的数据库连接对象。
34         return session;
35     }
36     /**
37      * 关闭Session
38      */
39     public static void closeSession(){
40         Session session = (Session) sessionTL.get();
41         sessionTL.set(null);
42         session.close();
43     }
44 }
时间: 2024-12-29 23:13:15

HibernateUtil.java,用于打开和关闭session,可在每一个项目里复用的相关文章

设计计算机类要求如下:属性:品牌、颜色、cpu型号,内存容量,硬盘大小,价格,工作状态;方法:打开,关闭,休眠;创建一个计算机对象,调用打开、关闭方法

代码如下: 1 //作者:realjanushu 2 //日期:17/9/28 3 /*功能: 4 设计计算机类要求如下: 5 6 属性:品牌.颜色.cpu型号,内存容量,硬盘大小,价格,工作状态: 7 8 方法:打开,关闭,休眠: 9 10 创建一个计算机对象,调用打开.关闭方法 11 */ 12 public class ComputerDemo{ 13 public static void main(String[] args){ 14 Computer c1 = new Computer

JS中用于打开、关闭、跳转页面的几个函数用法

window.open('url' , ' _self/_ blank):打开一个页面,属于window的函数 打开的页面对象.close():将打开的页面关闭 window.location.href = ' url ':跳到指定页面 window.history.back():回溯到上一个页面 window.history.go(参数):参数为正:跳到下几个页面:参数为负:跳到上几个页面 举个栗子: <html> <head> <meta charset="ut

Android 判断app何时是打开或者关闭的技术研究

只有两种东西能让一个团队团结,恐惧或忠诚.---<速度与激情7> 原文链接:http://engineering.meetme.com/2015/04/android-determine-when-app-is-opened-or-closed/ 存在的问题 Android开发中不可避免的会遇到需要检查app何时进入前台,何时被用户关闭.奇怪的是,要达到这个目的并不容易.检查app第一次启动并不难,但要判断它何时重新打开和关闭就没有那么简单了. 这篇文章将介绍一种判断app打开,重新打开和关闭

HibernateUtil.java

package com.hkwy.util; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.cfg.Configuration; public class HibernateUtil{ public static final SessionFactory session

Java EE : 三、图解Session(会话)

目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.Session由来 二.Session机制 三.详细介绍Seesion机制过程 四.补充 五.总结 参考 一.Session由来 HTTP的无状态,也就是说,每次请求都是独立的线程.举个例子吧:购物中,你选择了A商品,加入购物车,这就是A线程.然后在选择B商品就是B线程.可是每次线程独立(对容器而言,A.B成了不同的用户),线程A不知

C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭

迄今为止,我们讨论的输入输出是以系统指定的标准设备(输入设备为键盘,输出设备为显示器)为对象的.在实际应用中,常以磁盘文件作为对象.即从磁盘文件读取数据,将数据输出到磁盘文件.磁盘是计算机的外部存储器,它能够长期保留信息,能读能写,可以刷新重写,方便携带,因而得到广泛使用. 文件(file)是程序设计中一个重要的概念.所谓“文件”,一般指存储在外部介质上数据的集合.一批数据是以文件的形式存放在外部介质(如磁盘.光盘和U盘)上的.操 作系统是以文件为单位对数据进行管理的,也就是说,如果想找存在外部

Linux环境编程之文件I/O(二):文件的打开与关闭

(一) Linux系统中,要对一个文件进行任何操作,必须首先获得它的文件描述符.而获得文件描述符的方式就是利用open/creat函数打开/创建该文件,open/creat函数返回文件描述符. #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, in

Android系统移植与调试之-------&gt;增加一个双击物理按键打开和关闭闪光灯并将闪光灯状态同步到下拉菜单中

最近有一个客户有这样的需求: 1.在[设置]--->[无障碍]中添加一个开关按钮. 如果打开开关的话,双击某个物理按键的时候,打开闪光灯,再双击该物理按键的时候,关闭闪光灯. 如果关闭开关的话,双击该物理按键的时候,不做任何处理. 2.打开关闭闪光灯的状态,在下拉菜单中也要同步. 如下图所示的效果: 当打开上面添加的开关后,如果双击POC键(POC键是我们公司自定义的一个物理按键)的时候,就打开闪光灯,并将下拉菜单中的闪光灯图标点亮,如下图所示 如果再次双击POC键(POC键是我们公司自定义的一

VB Open 函数详解 打开、关闭、读、写文件

(一)打开和关闭文件      1.顺序文件     打开顺序文件,我们可以使用Open语句.它的格式如下:Open pathname For [Input |Output |Append] As [#]filenumber [Len = buffersize]      说明:     (1)参数pathname 表示要打开的文件名,文件名可以包含有驱动器和目录     (2)Input Output 和Append用于设置顺序文件的打开方式.其中,Input表示从打开的文件中读取数据.以这种