<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文件

    主站蜘蛛池模板: 一级特黄录像免费播放中文版| 亚洲五月丁香综合视频| caoporm超免费公开视频| 免费一级黄色毛片| 成人免费无码大片A毛片抽搐| 又粗又大又长又爽免费视频| 综合一区自拍亚洲综合图区| 国产真人无遮挡作爱免费视频 | 久久精品国产亚洲av品善| 免费看无码自慰一区二区| 最新亚洲人成无码网www电影| 在线看片无码永久免费aⅴ| 免费中文字幕视频| 无码av免费毛片一区二区| 久久影视综合亚洲| 亚洲日本VA午夜在线电影| 成人免费视频国产| 成人a毛片免费视频观看| 亚洲级αV无码毛片久久精品| 免费国产黄网站在线观看 | 亚洲最大成人网色| 国产99视频精品免费观看7| 亚洲AV永久无码精品一福利| 亚洲人成电影在线播放| 亚洲国产成人无码AV在线| 亚洲人妻av伦理| 成全高清在线观看免费| 亚洲人成毛片线播放| 香港a毛片免费观看| 亚洲综合无码一区二区痴汉| 中文字幕在线免费| 亚洲AV男人的天堂在线观看| 国产精品久久免费| 麻豆va在线精品免费播放| 国产成人免费a在线资源| 野花香高清在线观看视频播放免费 | 中文字幕乱码免费看电影| 亚洲乱码卡一卡二卡三| 亚洲国产成人乱码精品女人久久久不卡| 嫩草成人永久免费观看| 亚洲精品自偷自拍无码|