java自定义动态链接数据库示例
packagedao;
importorg.hibernate.HibernateException;
importorg.hibernate.Session;
importorg.hibernate.cfg.Configuration;
/**
*@authorminxuenetcn
*/
publicclassHibernateSessionFactory{
privatefinalThreadLocal<Session>threadLocal=newThreadLocal<Session>();
privateConfigurationconfiguration=newConfiguration();
privateorg.hibernate.SessionFactorysessionFactory;
/**
*hibernate.cfg.xml
*@paramconfigFile
*/
publicvoidsetConfiguration(StringconfigFile){
this.configuration=newConfiguration();
configuration.configure(configFile);
}
/**
*ReturnstheThreadLocalSessioninstance.
* @returnSession
* @throwsHibernateException
*/
publicSessiongetSession()throwsHibernateException{
Sessionsession=(Session)threadLocal.get();
if(session==null||!session.isOpen()){
if(sessionFactory==null){
rebuildSessionFactory();
}
session=(sessionFactory!=null)?sessionFactory.openSession()
:null;
threadLocal.set(session);
}
returnsession;
}
/**
* Rebuildhibernatesessionfactory
*
*/
publicvoidrebuildSessionFactory(){
try{
sessionFactory=this.configuration.buildSessionFactory();
}catch(Exceptione){
System.err
.println("%%%%ErrorCreatingSessionFactory%%%%");
e.printStackTrace();
}
}
/**
* Closethesinglehibernatesessioninstance.
*
* @throwsHibernateException
*/
publicvoidcloseSession()throwsHibernateException{
Sessionsession=(Session)threadLocal.get();
threadLocal.set(null);
if(session!=null){
session.close();
}
}
/**
* returnsessionfactory
*
*/
publicorg.hibernate.SessionFactorygetSessionFactory(){
returnsessionFactory;
}
/**
* returnhibernateconfiguration
*/
publicConfigurationgetConfiguration(){
returnconfiguration;
}
}
相关文章
- Java设置全局变量_java如何定义全局变量
- java h2数据库_JAVA 项目中使用 H2 数据库
- java sortedset用法_Java SortedSet headSet()用法及代码示例[通俗易懂]
- java标识符与关键字_4、Java标识符和关键字
- java开发常用四大框架_大牛经验!常用的5款Java框架汇总[通俗易懂]
- java一个字符几个字节_Java 语言中一个字符占几个字节?
- 99%的Java程序员会踩的6个坑
- java h2 数据库_Java H2数据库
- Java操作MySQL数据库快速入门(java访问mysql)
- 数据库解锁Java,优雅连接Oracle数据库(java使用oracle)
- Linux环境下编译Java程序的指南(linux编译java)
- Java连接MySQL数据库的简单步骤(java如何连接mysql数据库)
- Java与Oracle联手构建数据库新世界(java和oracle)
- 使用Java操作Redis数据库(java中使用redis)
- Oracle与Java的连接:揭秘数据库开发技术之间的神奇联系(oracle连接java)
- Linux与Java:驱动着计算未来(linux与java)
- 如何使用Java备份Oracle数据库?(java备份oracle)
- Java与MySQL数据库备份操作指南(mysqljava备份)
- Java和Redis的配合安装方法(java redis安装)
- Java程序员的MySQL数据库之旅(java操作mysql数据库)
- Oracle全面支持Java链技术构建数据库应用(java链oracle)
- Java迭代Oracle实现数据库更高性能(java迭代oracle)
- 语句Java自动生成Oracle数据库查询语句(java生成oracle)
- Java模拟Oracle实现稳定数据库性能(java模仿oracle)
- 数据库Java编程修改Oracle数据库的实践(java修改oracle)
- Oracle数据库中运行Java程序的简易指南(oracle中写java)