Hibernate的标准配置

来源:互联网 发布:iso8859 java 编辑:程序博客网 时间:2024/05/23 14:50

<?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;
 }

}

原创粉丝点击