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

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

?? hibernateutil.java

?? java網(wǎng)上考試系統(tǒng)
?? JAVA
字號:
package com.qrsx.exam.dao.util;

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.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 Configuration();

            // 讀取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)閉當前的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;
        }
    }

    /**
     * 在當前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();
    }

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女视频免费一区| 欧美绝品在线观看成人午夜影视| 91亚洲精品久久久蜜桃| 欧美va亚洲va香蕉在线| 亚洲午夜av在线| jvid福利写真一区二区三区| 日韩欧美一级精品久久| 伊人一区二区三区| 国产·精品毛片| 欧美一区日本一区韩国一区| 一区二区三区四区不卡视频| 丁香桃色午夜亚洲一区二区三区| 欧美福利电影网| 亚洲福利视频导航| 欧洲生活片亚洲生活在线观看| 日本一区二区视频在线| 狠狠狠色丁香婷婷综合激情| 欧美精品自拍偷拍| 午夜av区久久| 欧美日韩国产免费一区二区| 亚洲综合清纯丝袜自拍| av网站一区二区三区| 国产精品剧情在线亚洲| av亚洲精华国产精华精| 中文字幕亚洲欧美在线不卡| bt7086福利一区国产| 欧美高清在线一区二区| 国产精品18久久久久久久久| 久久嫩草精品久久久久| 国产精品99久久久久久宅男| 国产网站一区二区三区| 国产91丝袜在线18| 国产精品乱码一区二三区小蝌蚪| 顶级嫩模精品视频在线看| 亚洲欧洲av在线| 欧美主播一区二区三区| 日韩中文字幕亚洲一区二区va在线 | 色诱亚洲精品久久久久久| 国产精品三级视频| 色综合久久88色综合天天6| 一区二区成人在线观看| 欧美日韩国产免费| 蜜乳av一区二区| 国产视频一区二区在线| 99久久精品国产导航| 亚洲精品久久久蜜桃| 欧美日韩一区不卡| 老司机一区二区| 日本一区二区电影| 91免费视频大全| 天天色 色综合| 久久久久久久久久美女| 91丝袜美女网| 日韩av电影天堂| 久久伊人中文字幕| 99久久精品免费看国产| 日韩影院免费视频| 国产偷国产偷精品高清尤物| 91香蕉视频mp4| 婷婷国产在线综合| 国产网红主播福利一区二区| 91搞黄在线观看| 国产在线国偷精品产拍免费yy| 日本一区二区三区四区| 日本高清免费不卡视频| 国产曰批免费观看久久久| 亚洲乱码国产乱码精品精的特点| 91精品国产综合久久香蕉麻豆| 国产高清成人在线| 偷偷要91色婷婷| 国产精品免费视频网站| 在线播放中文一区| 91社区在线播放| 激情综合网最新| 亚洲永久免费av| 亚洲国产精华液网站w| 欧美日韩小视频| 97精品视频在线观看自产线路二 | 国产精品不卡一区| 欧美一区二区精品| 色综合婷婷久久| 国产99久久久国产精品免费看| 日韩影院免费视频| 亚洲精选免费视频| 中文一区在线播放| 精品国产乱码久久| 欧美美女一区二区在线观看| 99久久99久久精品免费观看| 黄色日韩三级电影| 五月天激情综合| 亚洲精选视频在线| 自拍偷拍欧美激情| 欧美极品少妇xxxxⅹ高跟鞋| 日韩欧美在线综合网| 欧美三区在线观看| 在线精品亚洲一区二区不卡| 成a人片国产精品| 国产精品乡下勾搭老头1| 精品一区二区三区在线播放视频| 亚洲成人在线免费| 亚洲国产一区二区三区 | 久久精品日产第一区二区三区高清版| 欧美日韩成人激情| 欧美视频在线观看一区| 欧美在线观看一二区| 91麻豆精品在线观看| 成人性生交大合| av一区二区三区黑人| av男人天堂一区| 99久久国产综合精品色伊| 91丝袜美腿高跟国产极品老师| 国产·精品毛片| 99久久久久久| 在线观看日韩国产| 欧美日韩在线综合| 欧美一区二区视频在线观看| 正在播放亚洲一区| 欧美sm极限捆绑bd| 久久久久国产精品麻豆| 国产精品女主播在线观看| 亚洲视频中文字幕| 一区二区三区精品在线观看| 亚洲午夜激情av| 免费成人在线观看| 国产激情偷乱视频一区二区三区| 懂色av一区二区三区蜜臀| 91在线精品秘密一区二区| 欧美无砖砖区免费| 日韩欧美的一区| 国产精品无人区| 亚洲国产一区二区视频| 免费的成人av| 成人激情小说乱人伦| 色婷婷av一区二区三区软件| 欧美日韩成人在线一区| 精品卡一卡二卡三卡四在线| 国产精品无圣光一区二区| 亚洲一区二区三区四区的| 免费观看一级特黄欧美大片| 福利电影一区二区| 欧美视频一区二区三区四区| 欧美电影免费观看高清完整版在| 国产精品热久久久久夜色精品三区| 亚洲欧美偷拍另类a∨色屁股| 亚洲成人一区在线| 国产成人在线视频网址| 欧美日韩国产另类一区| 久久精品亚洲麻豆av一区二区 | 久久国产精品无码网站| 成人免费的视频| 欧美日韩日日骚| 国产精品毛片久久久久久久 | 亚洲免费资源在线播放| 日韩激情在线观看| 99精品在线免费| 欧美成人精品3d动漫h| 国产精品美女久久久久aⅴ国产馆| 丝袜美腿一区二区三区| 成人永久看片免费视频天堂| 欧美裸体一区二区三区| 中文字幕一区二区三区四区不卡| 日韩不卡一二三区| 91女神在线视频| 欧美国产丝袜视频| 久久国产免费看| 777欧美精品| 亚洲国产精品影院| 成人久久18免费网站麻豆| 欧美videos大乳护士334| 亚洲综合男人的天堂| 成人av免费在线播放| 精品国产乱码久久久久久久| 首页国产丝袜综合| 欧美亚洲愉拍一区二区| 亚洲欧洲国产日韩| 国产.欧美.日韩| 久久久噜噜噜久噜久久综合| 婷婷丁香久久五月婷婷| 欧美伊人久久久久久午夜久久久久| 欧美国产精品劲爆| 国产精品资源站在线| 日韩精品在线网站| 日韩电影在线观看电影| 欧美日本免费一区二区三区| 一区二区三区日韩精品视频| 97aⅴ精品视频一二三区| 中文字幕乱码亚洲精品一区| 国产一区视频网站| 久久亚洲精品小早川怜子| 麻豆传媒一区二区三区| 日韩欧美中文字幕精品| 日本不卡1234视频| 日韩一二三区不卡| 青青草97国产精品免费观看无弹窗版 | 日韩视频在线永久播放| 青青青伊人色综合久久| 欧美大片拔萝卜| 韩国成人精品a∨在线观看| 久久人人爽爽爽人久久久| 国产成人在线影院|