hibernateutil.java
来自「本代码是在eclipse下开发hibernate的典型实例」· Java 代码 · 共 96 行
JAVA
96 行
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 + =
减小字号Ctrl + -
显示快捷键?