Hibernate 的官方包好象没有这个类。

解决方案 »

  1.   

    我在书上看的。原话是:HIBERNATE官方提供的HibernateUtil类包含两个静态方法,分别用于打开session和关闭session.
      

  2.   

    对啊  我在写好程序后,也说无法解析hibernateUtil  这个类要自己写的吗?
      

  3.   

    package dao;import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;/*
     *java静态语句快: 静态代码块只会执行一次,一般会用来初始化一些值,并且在所有对象中全局共享。
     * sessionfactory 对象是重量级的对象,共创建过程 比较耗时及占用资源,可以将其理解主是一个生产session的工厂
     * 当需要对象 时从些工厂获得即可,所在整 个过程中的应用过程中最好只创建一次。对程序而方session是应用非常频繁的,如果用到session对象就
     * 去创建一个sessionfactory对象,将会对程序的性能产生一定的负作用,因此在hibernate初始化类中应将sessionfactory对象的创建置于静态中,实现在程序
     * 的应用过程中只创建一次,从而节省资源的占用。但session对象并不是纯种安全的,在涉及到多线程问题时,应借助于threadlocal对象进行管理
     * 
     * 
     * */
    public class HibernateUtil {
    private static final SessionFactory sessionFactory;
    //使用ThreadLocal管理Session
    private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();


    static {
    try {
    //根据hibernate.cfg.xml建立SessionFactory
    sessionFactory = new Configuration().configure("/hibernate.cfg.xml").buildSessionFactory();
    } catch (Throwable ex) {
    System.err.println("建立SessionFactory错误" + ex);
    throw new ExceptionInInitializerError(ex);
    }
    }


    public static SessionFactory getSessionFactory() {
    return sessionFactory;
    }

        public static Session getSession() throws HibernateException {
    Session session = (Session) threadLocal.get();
    if (session == null || !session.isOpen()) {
    session = (sessionFactory != null) ? sessionFactory.openSession(): null;
    threadLocal.set(session);
    }
    return session;
    }  
        
        public static void closeSession() throws HibernateException {
            Session session = (Session) threadLocal.get();
            threadLocal.set(null);        if (session != null) {
                session.close();
            }
        }
    }
     
    这个类是自己写的 ,我把源代码放上啦,你参考一下。
      

  4.   

    lz你太可爱了。。那个所谓的hibernateUtil 其实就是hibernateFactory在创建的时候改了个名字