superwei

          導航

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          統計

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          Hibernate的原理與配置快速入門(4)

           創建一個SessionFactory對象

            為了能創建一個SessionFactory對象,你必須在Hibernate初始化時創建一個Configuration類的實例,并將已寫好的映射文件交由它處理。這樣,Configuration對象就可以創建一個SessionFactory對象,當SessionFactory對象創建成功后,Configuration對象就沒有用了,你可以簡單地拋棄它。如下是示例代碼:

          Configuration cfg = new Configuration();
          cfg.addResource("hello/Message.hbm.xml");
          cfg.setProperties( System.getProperties() );
          SessionFactory sessions = cfg.buildSessionFactory();

            在以上代碼中,Message.hb.xml這個映射文件的位置比較特殊,它與當前的classpath相關。例如classpath包含當前目錄,那在上述代碼中的Message.hbm.xml映射文件就可以保存在當前目錄下的hello目錄中。

            作為一種約定,Hibernate的映射文件默認以.htm.xml作為其擴展名。另一個約定是堅持為每一個持久類寫一個配置文件,想一想如果你將所有持久類的映射寫入一個單獨的配置文件中的話,那這個配置文件肯定非常龐大,不易維護。但這里又出現了一個新問題:如果為每個類寫一個配置文件的話,這么多的配置文件應該存放在哪里呢?

            Hibernate推薦你將每個映射文件保存在與持久類相同的目錄下,并且與持久類同名。例如我們第一個示例程序中的Message持久類放在hello目錄下,那你必須在這個目錄下存放名為Message.hbm.xml的映射文件。這樣一個持久類都有自己的一個映射文件,避免了出現像struts項目中的“struts-config.xml地獄”的情況。如果你不遵循這種規定,那你必須手動地用addResource()方法將一個個的映射文件載入;但你如果遵循這種規定,那你可以方便地用addClass()方法同時將持久類和它的映射文件載入,以下是體現這種便利性的示例代碼:

          SessionFactory sessions = new Configuration()
          .addClass(org.hibernate.auction.model.Item.class)
          .addClass(org.hibernate.auction.model.Category.class)
          .addClass(org.hibernate.auction.model.Bid.class)
          .setProperties( System.getProperties() )
          .buildSessionFactory();

            當然,Hibernate的映射文件還有很多其它的配置選項,比如數據庫連接的設定,或是能夠改變Hibernate運行時行為的一些設定。所有的設置可能是非常龐雜的,足以讓你喘不過氣來,但是不必擔心,因為Hibernate為絕大多數值都設定了一個合理缺省值,你只需要修改這些配置文件中的極小一部分值。

            你可以通過以下幾種方式來修改Hibernate的系統配置參數:

            · 將一個Java.util.Properties實例作為參數傳給Configuration類的setProperties()方法。

            · 在Hibernate啟動時用Java –Dproperty=value的方式設置值。

            · 在classpath可以找到的路徑下創建一個名為hibernate.properties的配置文件。

            · 在classpath可以找到的路徑下創建一個名為hibernate.cfg.xml的文件,并在其<property>標簽中定義屬性值。

            以上就是對Hibernate的一個大致介紹,如果你想知道得更多,那本文還是遠遠不夠的,我將陸續推出更多關于Hibernate的資料。但有一點是毫無疑問的:它的確是一個非常優秀的持久層解決方案!

          posted on 2005-10-31 11:31 小辭猬 閱讀(280) 評論(0)  編輯  收藏 所屬分類: JAVA

          主站蜘蛛池模板: 蒙城县| 胶州市| 安义县| 肥西县| 奉贤区| 同德县| 宝坻区| 衡阳市| 陈巴尔虎旗| 巫山县| 门源| 清河县| 襄汾县| 东宁县| 宜丰县| 慈利县| 鄱阳县| 长宁区| 宿松县| 磴口县| 高雄县| 马关县| 遂平县| 上虞市| 乌拉特前旗| 阿克| 华蓥市| 永清县| 潼南县| 体育| 武隆县| 高清| 郯城县| 南阳市| 铁岭县| 阳新县| 汉川市| 化州市| 永州市| 赫章县| 金沙县|