2013年12月13日 星期五

在Eclipse中,使用JBoss Tools 建立 Hibernate 相關 映射檔案(java,hbm.xml,cfg.xml等)

在Eclipse中先使用 Install new software 下載 JBoss Tools 或直接去官網下載。
以下以連結 Oracle 為例,首先建立一Dynamic Web Project



接著加入相關的jar檔,如 Hibernate 及 jdbc for Oracle

接下來在Project上新增一 Hibernate Configuration File

選擇存放hibernate.cfg.xml的位置,一般位於 src根目錄

接著進入如下畫面,開始著手相關配置

可以使用Get values from Conntection 來建立(New)配置檔,以後直接選擇配置檔存取即可

選擇資料庫類型,Name及Description 任意,接著點選Next

選擇資料庫版本,一般選Oracle Thin Driver,接著將相關的jdbc jar檔位置設定好


再至Properties 設定相關資料庫屬性,如UserID Password

完成後,會在src的目錄下看到該檔案(hibernate.cfg.xml),但請進入修改依些設定,如下圖

接著開啟一個新的 Perspective --> Hibernate

接下來可以在畫面分頁中查看是否設定正確,若正確,則可以在Database中查看相關Table資料

接下來執行 Hibernate Code Generation Configurations...

開啟畫面如下,可以新增一個自己的配置
【Main】
Console configuration --> 選擇自己的專案名稱
Output directory --> 選擇輸出檔案的目錄,一般設定為 src
Reverse engineer from JDBC Connection --> 請勾選
package --> 選擇要放置升成 java 映射檔的 pagkage 為何
reveng.xml --> 若未建立過,請選擇新增,一般也是設定在 src 的目錄下

【Exporters】
選擇要產出的檔案類型 如 java / hbm.xml映射檔等

其餘的不太需要變更,直接選擇Run,會發現專案目錄已出現我們要的檔案

其餘一些相關設定如以下圖片:
【Table filters】  
可選擇要建立相關映射的 Table

選擇產出的 ?.hbm.xml 檔案中,jdbc的資料型別對應Hibernate的類型

將重複無用對應資料刪除

建立要加入該 ?.hbm.xml資料的對應欄位,可順便設定primary key 及 相關產出方式
範例:
        <id name="logId" type="long">
            <column name="LOG_ID" precision="10" scale="0" />
            <generator class="native">
              <param name="sequence">CHECKIN_LOG_AUTO</param>
            </generator>
        </id>
對照的選項如下:

完成後產出資料後,請記得去將該 ???.hbm.xml 加入 hibernate.cfg.xml 的 mapping 中,如下

修改後的結果,其實可透過介面新增屬性,當然也可以直接對source對修改

如此就可以試著使用該產出的檔案,若有勾選輸出DAO,則可直接拿來運用

但請記得修改當中的 getSessionFactory()
    protected SessionFactory getSessionFactory() {
        try {
            //return (SessionFactory) new InitialContext().lookup("SessionFactory");
            return (SessionFactory)new          Configuration().configure().buildSessionFactory();
        } catch (Exception e) {
            log.error("Could not locate SessionFactory in JNDI", e);
            throw new IllegalStateException(
                    "Could not locate SessionFactory in JNDI");
        }
    }
如此一來才能順利取得 hibernate.cfg.xml 的相關配置資料

2 則留言 :

  1. 版主您好:無意見看到這裡, 我正在學hibernate 框架, 你的解說超詳細,我還在試;
    版大似乎是資深軟體工程師?? 右邊的文章很多; 看來精通很多東西...

    回覆刪除
    回覆
    1. 您好:
      我只是個小小PG,公司要我做什麼就做什麼的小人物而已,這些只是我在使用的過程中順手記下來的,怕以後忘記要再找很麻煩而已,有幫到您就好

      刪除