java自定义动态链接数据库示例_Java教程-查字典教程网
java自定义动态链接数据库示例
java自定义动态链接数据库示例
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:packagedao;importorg.hibernate.HibernateException;importorg.h...

复制代码 代码如下:

package dao;

import org.hibernate.HibernateException;

import org.hibernate.Session;

import org.hibernate.cfg.Configuration;

/**

* @author minxuenetcn

*/

public class HibernateSessionFactory {

private final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();

private Configuration configuration = new Configuration();

private org.hibernate.SessionFactory sessionFactory;

/**

* hibernate.cfg.xml

* @param configFile

*/

public void setConfiguration(String configFile){

this.configuration=new Configuration();

configuration.configure(configFile);

}

/**

* Returns the ThreadLocal Session instance.

* @return Session

* @throws HibernateException

*/

public Session getSession() throws HibernateException {

Session session = (Session) threadLocal.get();

if (session == null || !session.isOpen()) {

if (sessionFactory == null) {

rebuildSessionFactory();

}

session = (sessionFactory != null) ? sessionFactory.openSession()

: null;

threadLocal.set(session);

}

return session;

}

/**

* Rebuild hibernate session factory

*

*/

public void rebuildSessionFactory() {

try {

sessionFactory = this.configuration.buildSessionFactory();

} catch (Exception e) {

System.err

.println("%%%% Error Creating SessionFactory %%%%");

e.printStackTrace();

}

}

/**

* Close the single hibernate session instance.

*

* @throws HibernateException

*/

public void closeSession() throws HibernateException {

Session session = (Session) threadLocal.get();

threadLocal.set(null);

if (session != null) {

session.close();

}

}

/**

* return session factory

*

*/

public org.hibernate.SessionFactory getSessionFactory() {

return sessionFactory;

}

/**

* return hibernate configuration

*/

public Configuration getConfiguration() {

return configuration;

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Java学习
    热门Java学习
    编程开发子分类