亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hibernateutil.java

?? 網(wǎng)上考試系統(tǒng)
?? JAVA
字號:
package cn.hxex.exam.persistence;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Interceptor;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Environment;


/**
 * 基礎(chǔ)的Hibernate輔助類,用于Hibernate的配置和啟動。
 * <p>
 * 通過靜態(tài)的初始化代碼來讀取Hibernate啟動參數(shù),并初始化
 * <tt>Configuration</tt>和<tt>SessionFactory</tt>對象。
 * <p>
 *
 * @author galaxy
 */
public class HibernateUtil 
{

    private static Log log = LogFactory.getLog(HibernateUtil.class);

    // 指定定義攔截器屬性名
    private static final String INTERCEPTOR_CLASS = "hibernate.util.interceptor_class";

    // 靜態(tài)Configuration和SessionFactory對象的實例(全局唯一的)
    private static Configuration configuration;
    private static SessionFactory sessionFactory;

    static 
    {
        // 從缺省的配置文件創(chuàng)建SessionFactory
        try 
        {
        	// 創(chuàng)建默認的Configuration對象的實例
        	// 如果你不使用JDK 5.0或者注釋請使用new Configuration()
        	// 來創(chuàng)建Configuration()對象的實例
            configuration = new AnnotationConfiguration();

            // 讀取hibernate.properties或者hibernate.cfg.xml文件
            configuration.configure();

            // 如果在配置文件中配置了攔截器,那么將其設(shè)置到configuration對象中
            String interceptorName = configuration.getProperty(INTERCEPTOR_CLASS);
            if (interceptorName != null) 
            {
                Class interceptorClass =
                        HibernateUtil.class.getClassLoader().loadClass(interceptorName);
                Interceptor interceptor = (Interceptor)interceptorClass.newInstance();
                configuration.setInterceptor(interceptor);
            }

            if (configuration.getProperty(Environment.SESSION_FACTORY_NAME) != null) 
            {
                // 讓Hibernate將SessionFacory綁定到JNDI
                configuration.buildSessionFactory();
            } 
            else 
            {
                // 使用靜態(tài)變量來保持SessioFactory對象的實例
                sessionFactory = configuration.buildSessionFactory();
            }

        } 
        catch (Throwable ex) 
        {
            // 輸出異常信息
            log.error("Building SessionFactory failed.", ex);
            ex.printStackTrace();
            throw new ExceptionInInitializerError(ex);
        }
    }

    /**
     * 返回原始的Configuration對象的實例
     *
     * @return Configuration
     */
    public static Configuration getConfiguration() 
    {
        return configuration;
    }

    /**
     * 返回全局的SessionFactory對象的實例
     *
     * @return SessionFactory
     */
    public static SessionFactory getSessionFactory() 
    {
        SessionFactory sf = null;
        String sfName = configuration.getProperty(Environment.SESSION_FACTORY_NAME);
        if ( sfName != null) 
        {
            log.debug("Looking up SessionFactory in JNDI.");
            try 
            {
                sf = (SessionFactory) new InitialContext().lookup(sfName);
            } 
            catch (NamingException ex) 
            {
                throw new RuntimeException(ex);
            }
        } 
        else 
        {
            sf = sessionFactory;
        }
        if (sf == null)
            throw new IllegalStateException( "SessionFactory not available." );
        return sf;
    }

    /**
     * 關(guān)閉當(dāng)前的SessionFactory并且釋放所有的資源
     */
    public static void shutdown() 
    {
        log.debug("Shutting down Hibernate.");
        // Close caches and connection pools
        getSessionFactory().close();

        // Clear static variables
        configuration = null;
        sessionFactory = null;
    }


    /**
     * 使用靜態(tài)的Configuration對象來重新構(gòu)建SessionFactory。
     */
     public static void rebuildSessionFactory() 
     {
        log.debug("Using current Configuration for rebuild.");
        rebuildSessionFactory(configuration);
     }

    /**
     * 使用指定的Configuration對象來重新構(gòu)建SessionFactory對象。
     *
     * @param cfg
     */
     public static void rebuildSessionFactory(Configuration cfg) 
     {
        log.debug("Rebuilding the SessionFactory from given Configuration.");
        synchronized(sessionFactory) 
        {
            if (sessionFactory != null && !sessionFactory.isClosed())
                sessionFactory.close();
            if (cfg.getProperty(Environment.SESSION_FACTORY_NAME) != null)
                cfg.buildSessionFactory();
            else
                sessionFactory = cfg.buildSessionFactory();
            configuration = cfg;
        }
     }

    /**
     * 在當(dāng)前SessionFactory中注冊一個攔截器
     */
    public static SessionFactory registerInterceptorAndRebuild(Interceptor interceptor) 
    {
        log.debug("Setting new global Hibernate interceptor and restarting.");
        configuration.setInterceptor(interceptor);
        rebuildSessionFactory();
        return getSessionFactory();
    }

    /**
     * 獲得攔截器對象
     * 
     * @return Interceptor
     */
    public static Interceptor getInterceptor() 
    {
        return configuration.getInterceptor();
    }

    /**
     * 提交當(dāng)前事務(wù),并開始一個新的事務(wù)
     */
    public static void commitAndBeginTransaction()
    {
    	sessionFactory.getCurrentSession().getTransaction().commit();
    	sessionFactory.getCurrentSession().beginTransaction();
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品免费看| 91免费小视频| 欧美视频在线一区二区三区| 日韩亚洲欧美高清| 亚洲乱码日产精品bd| 国产一区二区影院| 91精品国产色综合久久不卡蜜臀| 国产精品乱子久久久久| 美女一区二区久久| 欧美视频一二三区| 亚洲乱码日产精品bd| 成人免费黄色大片| 精品欧美一区二区久久| 亚洲国产sm捆绑调教视频| 成人av在线电影| 日韩欧美的一区二区| 亚洲 欧美综合在线网络| 成人av在线播放网址| 久久久99精品久久| 国产一区二区三区综合| 日韩一级视频免费观看在线| 亚洲成人自拍一区| 欧美视频三区在线播放| 亚洲欧美视频在线观看| 99v久久综合狠狠综合久久| 国产视频一区在线播放| 国产一区二区在线看| 精品国产乱码久久久久久1区2区 | 亚洲在线免费播放| 成人性生交大片免费| 日韩欧美一区二区久久婷婷| 日日夜夜免费精品视频| 91精品国产91久久久久久一区二区| 亚洲一区在线看| 欧美日韩国产影片| 日本sm残虐另类| 精品福利av导航| 国内外成人在线| 国产精品午夜电影| 99精品视频免费在线观看| 中文字幕在线不卡一区| 91最新地址在线播放| 亚洲美女淫视频| 欧美日韩国产123区| 婷婷丁香久久五月婷婷| 日韩一区二区电影| 国产精品亚洲专一区二区三区| 国产亚洲精品久| 99re视频这里只有精品| 一区二区欧美在线观看| 69p69国产精品| 国产一区二区三区久久悠悠色av| 国产亚洲精品aa午夜观看| 成人av在线一区二区三区| 亚洲伊人色欲综合网| 91精品免费观看| 国产激情视频一区二区在线观看| 国产精品高潮久久久久无| 欧美在线观看视频在线| 免费观看久久久4p| 国产亚洲欧美日韩日本| 色呦呦日韩精品| 日本不卡免费在线视频| 国产女人18水真多18精品一级做| 色婷婷亚洲精品| 麻豆精品一区二区三区| 国产精品国产自产拍高清av王其| 欧美日韩一区二区在线视频| 激情六月婷婷久久| 亚洲激情第一区| 精品久久一二三区| 日本精品裸体写真集在线观看| 老司机午夜精品| 一区二区三区四区中文字幕| 欧美一区二区三区视频在线| 成人18视频日本| 久久疯狂做爰流白浆xx| 亚洲精选一二三| 欧美激情综合网| 欧美一区二区福利视频| 91女厕偷拍女厕偷拍高清| www..com久久爱| 国产在线不卡一区| 五月综合激情婷婷六月色窝| 国产精品免费aⅴ片在线观看| 在线不卡的av| 在线视频一区二区三| 国产suv精品一区二区三区| 日韩一区欧美二区| 亚洲一区影音先锋| 亚洲视频资源在线| 久久久国产一区二区三区四区小说 | 欧美在线一区二区| 岛国一区二区在线观看| 久久超碰97中文字幕| 五月婷婷综合在线| 亚洲综合av网| 国产精品三级av| 国产免费观看久久| 欧美一二三区精品| 欧美一区二区三区不卡| 欧美日韩国产片| 欧美日韩亚洲丝袜制服| 色哟哟精品一区| 一本一道久久a久久精品综合蜜臀| 欧美日韩精品系列| 欧美在线观看视频一区二区| 97se亚洲国产综合自在线不卡| 国产91丝袜在线观看| 国产九九视频一区二区三区| 精品综合免费视频观看| 久久99国产精品麻豆| 久久国产视频网| 精品无码三级在线观看视频| 久久精品国产99| 久久国产视频网| 国产一区二区三区久久悠悠色av| 国产最新精品精品你懂的| 经典三级在线一区| 国产一区二区视频在线| 国产不卡一区视频| 成人三级伦理片| 94-欧美-setu| 欧美三级日本三级少妇99| 欧美午夜精品久久久| 制服丝袜亚洲色图| 精品免费国产二区三区 | 欧美三级电影在线看| 91精品国产综合久久蜜臀| 日韩免费高清视频| 久久久一区二区三区| 国产精品全国免费观看高清| 亚洲人成精品久久久久| 午夜欧美一区二区三区在线播放| 日本va欧美va欧美va精品| jlzzjlzz国产精品久久| 91网站在线观看视频| 欧美日韩视频第一区| 欧美成人精品福利| 中文字幕不卡的av| 亚洲成人三级小说| 精品在线一区二区三区| 99久久久精品| 欧美日韩aaaaa| 日本一区二区视频在线观看| 亚洲欧美日韩在线播放| 青娱乐精品视频| 成人国产电影网| 欧美精品久久天天躁| 久久精品水蜜桃av综合天堂| 亚洲欧美激情插| 国模套图日韩精品一区二区| 色综合中文综合网| 奇米色一区二区| 色综合中文字幕国产| 国产福利91精品一区二区三区| 国产精品伦一区| 国产精品久久久久影院| 亚洲成精国产精品女| 久久综合综合久久综合| 成人一区二区三区在线观看| 欧美色倩网站大全免费| 国产欧美日韩在线| 亚洲综合清纯丝袜自拍| 国产一区在线不卡| 欧美疯狂性受xxxxx喷水图片| 国产人久久人人人人爽| 亚洲成av人片一区二区| 国产在线视频一区二区| 欧美色综合影院| 综合分类小说区另类春色亚洲小说欧美 | 99国产精品国产精品久久| 精品国产一区二区三区av性色| 一区二区在线观看视频| 国产老妇另类xxxxx| 91麻豆精品国产综合久久久久久| 成人免费在线视频| 国产成人av影院| 日韩欧美成人午夜| 日本91福利区| 欧美精品一二三四| 一区二区三区四区激情| 成人性色生活片| 欧美国产一区二区| 国产乱人伦偷精品视频免下载| 日韩西西人体444www| 首页亚洲欧美制服丝腿| 欧美午夜影院一区| 一区二区三区免费在线观看| av男人天堂一区| 国产精品天美传媒| 国产白丝精品91爽爽久久| 国产午夜精品久久久久久免费视| 免费成人你懂的| 538prom精品视频线放| 五月激情综合色| 欧美日韩美少妇| 日韩国产一区二| 日本高清成人免费播放| 2023国产精品视频|