<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    瘋狂

    STANDING ON THE SHOULDERS OF GIANTS
    posts - 481, comments - 486, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    hibernate annoation (一加載)

    Posted on 2009-11-02 14:58 瘋狂 閱讀(651) 評(píng)論(0)  編輯  收藏 所屬分類: java 、hibernate

     

     

    一,配置文件加載

     1,Configuration

           如果不是annoation則可以使用Configuration configuration = new Configuration();

           使用annoation則可以使用Configuration configuration = new AnnotationConfiguration();

      2,加載,使用onfiguration的configure方法根據(jù)方法參數(shù)可以有一下幾種加載方式:

           (1) configure();

                 吃方法會(huì)去classpath下尋找我們的配置文件

                 其實(shí)調(diào)用了configure( "/hibernate.cfg.xml" );也就是 configure(String resource);方法

           (2) configure(String resource);

                 最常用方的方法,其實(shí)調(diào)用了doConfigure(InputStream stream, String resourceName);

                

                 說明一點(diǎn)內(nèi)部代碼:

                 ConfigHelper.getResourceAsStream( resource );

               

    Java代碼 復(fù)制代碼
    1. String stripped = resource.startsWith("/") ?   
    2.         resource.substring(1) : resource;   
    3.   
    4. InputStream stream = null;   
    5. ClassLoader classLoader = Thread.currentThread().getContextClassLoader();   
    6. if (classLoader!=null) {   
    7.     stream = classLoader.getResourceAsStream( stripped );   
    8. }   
    9. if ( stream == null ) {   
    10.     stream = Environment.class.getResourceAsStream( resource );   
    11. }   
    12. if ( stream == null ) {   
    13.     stream = Environment.class.getClassLoader().getResourceAsStream( stripped );   
    14. }   
    15. if ( stream == null ) {   
    16.     throw new HibernateException( resource + " not found" );   
    17. }   
    18. return stream;   

           第一行高數(shù)我們"/hibernate.cfg.xml" 可以去掉前面的“/”其中調(diào)用了Thread.currentThread().getContextClassLoader();一般也就是我們的AppClassLoader

         由stream = Environment.class.getResourceAsStream( resource );可以看出我們的"/hibernate.cfg.xml同樣可以放在與和Environment同樣的目錄 具體到我們的代碼里面在使用(3),(4),(5)時(shí)可以放在加載 類的包內(nèi)或其他

           (3) configure(URL url);

            doConfigure( url.openStream(), url.toString() );調(diào)用(5)

           (4) configure(File configFile);

             doConfigure( new FileInputStream( configFile ), configFile.toString() );調(diào)用(5)

           (5) doConfigure(InputStream stream, String resourceName);

              使用dom4j解析文件為Document然后

               xmlHelper.createSAXReader( resourceName, errors, entityResolver )
         .read( new InputSource( stream ) );

                             掉用(6)

           (6) configure(Document document);

           在這個(gè)方法里會(huì)解析所有配置信息和mapping類或者h(yuǎn)b文件

    主站蜘蛛池模板: 一个人看www在线高清免费看| 两个人www免费高清视频| 久久狠狠爱亚洲综合影院 | 中文字幕无码日韩专区免费| ssswww日本免费网站片| 国产精品免费久久久久影院| h视频在线观看免费| 三年片免费观看大全国语| 成人一区二区免费视频| 成人性生交大片免费看中文| 午夜精品免费在线观看| 曰批全过程免费视频网址 | 另类专区另类专区亚洲| 香蕉97碰碰视频免费| 一级做a爱片特黄在线观看免费看| 一级毛片试看60分钟免费播放| 一级一级一片免费高清| 中文字幕免费在线看电影大全| 国产免费爽爽视频在线观看| 99re6热视频精品免费观看| 国产v精品成人免费视频400条| 天天摸天天操免费播放小视频| 免费国产美女爽到喷出水来视频| 亚洲精品高清在线| 亚洲AV无码乱码国产麻豆| 亚洲字幕在线观看| 激情无码亚洲一区二区三区| 久香草视频在线观看免费| 久久免费福利视频| 成人免费一区二区无码视频| 国产gav成人免费播放视频| 国产亚洲成人久久| 亚洲精品福利网泷泽萝拉| 亚洲精品无码一区二区| xxxxx做受大片视频免费| 99re在线精品视频免费| 免费黄色大片网站| 亚洲自偷自偷偷色无码中文| 亚洲导航深夜福利| 免费人成视频在线播放| 日韩人妻一区二区三区免费|