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