📄 connectionusermanager.java
字号:
/*
* Created on 2007-9-8
* Last modified on 2007-9-8
* Powered by YeQiangWei.com
*/
package com.yeqiangwei.club.dao.hibernate;
import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class ConnectionUserManager {
private static final Logger logger = Logger.getLogger(ConnectionUserManager.class);
private static SessionFactory SESSION_FACTORY = null;
public static final ThreadLocal<Session> LOCAL_SESSION = new ThreadLocal<Session>() ;
private static final ThreadLocal<Transaction> TRANSACTION_THREAD = new ThreadLocal<Transaction>();
public static void init() throws HibernateException {
if(SESSION_FACTORY==null){
SESSION_FACTORY =
new Configuration().configure("/yeqiangwei.user.hb.xml").buildSessionFactory();
logger.info("Users SessionFactory Instance");
}
}
public static SessionFactory getSessionFactory(){
if(SESSION_FACTORY==null){
ConnectionUserManager.init();
}
return SESSION_FACTORY;
}
public static Session getSession(){
Session session = LOCAL_SESSION.get();
if(session==null||!session.isOpen()){
session = SESSION_FACTORY.openSession();
logger.debug("getSession() session.isOpen:"+session.isOpen());
LOCAL_SESSION.set(session);
}
return session;
}
public static void closeSession() throws HibernateException {
Session session = LOCAL_SESSION.get();
if (session!= null&&session.isOpen()){
logger.debug("closeSession() session.isOpen:"+session.isOpen());
session.close();
}
LOCAL_SESSION.set(null);
}
public static Transaction beginTransaction() throws HibernateException {
Transaction tx = TRANSACTION_THREAD.get();
if (tx == null) {
tx = getSession().beginTransaction();
TRANSACTION_THREAD.set(tx);
}
return tx;
}
/**
* 提交当前Session的Transaction
* @throws HibernateException
*/
public static void commitTransaction() throws HibernateException {
Transaction tx = TRANSACTION_THREAD.get();
TRANSACTION_THREAD.set(null);
if (tx != null) tx.commit();
}
/**
* 回滚当前事务
* @throws HibernateException
*/
public static void rollbackTransaction() throws HibernateException {
Transaction tx = TRANSACTION_THREAD.get();
TRANSACTION_THREAD.set(null);
if (tx != null) tx.rollback();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -