hibernate入门配置

2014-11-23 22:16:41 · 作者: · 浏览: 109

  HibernateUtil.java


  package com.netease.wireless.groupsms.hbnt.util;


  import net.sf.hibernate.HibernateException;


  import net.sf.hibernate.Session;


  import net.sf.hibernate.cfg.Configuration;


  /**


  * Configures and provides access to Hibernate sessions, tied to the


  * current thread of execution. Follows the Thread Local Session


  * pattern, see {@link http://hibernate.org/42.html}.


  */


  public class HibernateUtil {


  /**


  * Location of hibernate.cfg.xml file.


  * NOTICE: Location should be on the classpath as Hibernate uses


  * #resourceAsStream style lookup for its configuration file. That


  * is place the config file in a Java package - the default location


  * is the default Java package.


  * Examples:


  * CONFIG_FILE_LOCATION = "/hibernate.conf.xml".


  * CONFIG_FILE_LOCATION = "/com/foo/bar/myhiberstuff.conf.xml".


  */


  private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";//hibernate.cfg.xml


  /** Holds a single instance of Session */


  private static final ThreadLocal threadLocal = new ThreadLocal();


  /** The single instance of hibernate configuration */


  private static final Configuration cfg = new Configuration();


  /** The single instance of hibernate SessionFactory */


  private static net.sf.hibernate.SessionFactory sessionFactory;


  /**


  * Returns the ThreadLocal Session instance. Lazy initialize


  * the SessionFactory if needed.


  *


  * @return Session


  * @throws HibernateException


  */


  public static Session currentSession() throws HibernateException {


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


    if (session == null) {


  if (sessionFactory == null) {


  try {


  cfg.configure(CONFIG_FILE_LOCATION);


  //cfg.configure();


  sessionFactory = cfg.buildSessionFactory();


  }


  catch (Exception e) {


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


  System.err.println("|||||||||||||" + e.getMessage());


  e.printStackTrace();


  }


  }


  session = sessionFactory.openSession();


  threadLocal.set(session);


  }


  return session;


  }


  /**


  * Close the single hibernate session instance.


  *


  * @throws HibernateException


  */