<?xml version='1.0'encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- 正文开始 -->
<hibernate-configuration>
<!--下面是数据库的基本连接信息,对一个应用来说,设置一个session-factory节点就够了,除非我们中间使用了多个数据库-->
<session-factory>
<!--用户名 -->
<propertyname="connection.username">test</property>
<!--url信息 -->
<propertyname="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<!--数据库方言信息-->
<propertyname="dialect">org.hibernate.dialect.OracleDialect</property>
<!--密码 -->
<propertyname="connection.password">test</property>
<!--数据库驱动信息 -->
<propertyname="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<propertyname="hibernate.jdbc.batch_size">50</property>
<propertyname="show_sql">true</property>
<propertyname="format_sql">true</property>
<propertyname="use_sql_comments">true</property>
</session-factory>
</hibernate-configuration>
HibernateSessionFactory.java:
package com.name.util;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
public class HibernateSessionFactory {
privatestatic String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
private static finalThreadLocal<Session> threadLocal =new ThreadLocal<Session>();
private static Configuration configuration = newConfiguration();
privatestatic org.hibernate.SessionFactory sessionFactory;
privatestatic String configFile = CONFIG_FILE_LOCATION;
privateHibernateSessionFactory() {
}
publicstatic 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;
}
public static void rebuildSessionFactory(){
try {
configuration.configure(configFile);
sessionFactory= configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%%Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
publicstatic void closeSession() throws HibernateException {
Session session = (Session) threadLocal.get();
threadLocal.set(null);
if (session != null) {
session.close();
}
}
public static org.hibernate.SessionFactorygetSessionFactory() {
return sessionFactory;
}
public static void setConfigFile(StringconfigFile) {
HibernateSessionFactory.configFile= configFile;
sessionFactory = null;
}
public static Configuration getConfiguration(){
return configuration;
}
}