📄 hibernateutil.java
字号:
package com.jgao.hql.test.business;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.Transaction;
import net.sf.hibernate.cfg.Configuration;
public class HibernateUtil {
private static final SessionFactory sessionFactory;//会话工厂,用于创建会话
public Session session;//hibernate会话
public Transaction transaction; //hiberante事务
public final ThreadLocal sessionThreadLocal = new ThreadLocal();
static {
try {
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (HibernateException ex) {
throw new RuntimeException("Exception building SessionFactory: " + ex.getMessage(), ex);
}
}
/**
* 打开一个会话
*/
protected Session openSession(){
try{
session = (Session)sessionThreadLocal.get();
if (session == null) {
session = sessionFactory.openSession();
sessionThreadLocal.set(session);
}
return session;
}catch (HibernateException ex) {
throw new RuntimeException("Exception building SessionFactory: " + ex.getMessage(), ex);
}
}
/**
* 关闭一个会话
* @throws HibernateException
*/
protected void closeSession() throws HibernateException{
try{
session = (Session) sessionThreadLocal.get();
sessionThreadLocal.set(null);
if (session != null)
session.close();
if(sessionFactory != null)
sessionFactory.close();
}catch (HibernateException ex) {
throw new RuntimeException("Exception building SessionFactory: " + ex.getMessage(), ex);
}finally{
if(session != null)
session.close();
if(sessionFactory != null)
sessionFactory.close();
}
}
/**
*开始一个hibernate事务
*/
public void beginTransaction()
throws HibernateException {
try{
session = (Session)sessionThreadLocal.get();
if (session == null) {
session = sessionFactory.openSession();
transaction = session.beginTransaction();
sessionThreadLocal.set(session);
}
}catch (HibernateException ex) {
throw new RuntimeException("Exception building SessionFactory: " + ex.getMessage(), ex);
}
}
/**
*结束一个hibernate事务。
* @throws HibernateException
*/
public void endTransaction() throws HibernateException{
try{
transaction.commit();
}catch (HibernateException ex) {
if (transaction!=null) transaction.rollback();
throw new RuntimeException("Exception while commit Transaction, and " +
"the Tarsaction had been rollback: " + ex.getMessage(), ex);
}finally{
if(session != null)
session.close();
if(sessionFactory != null)
sessionFactory.close();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -