用Eclipse Hibernate Synchronizer外掛程式開發Hibernate應用

來源:互聯網
上載者:User
Hibernate是一個開放原始碼的O/R Mapping (對象關係映射架構),它對JDBC進行了輕量級的對象封裝,使Java程式員可以使用對象編程思維來操縱資料庫。

Hibernate Synchronizer是一個Eclipse外掛程式,可以自動產生*.hbm檔案、持久化類和DAOs。瞭解Hibernate Synchronizer外掛程式的詳細資料可以訪問:http://www.binamics.com/hibernatesync/ 。

一、Hibernate Synchronizer的功能包括:

l         通過一個嚮導配置並產生Hibernate Configuration File;

l         通過一個嚮導同步產生資料庫表的*.hbm檔案;

l         通過*.hbm檔案同步產生Hibernate持久化類和DAOs;

l         提供Hibernate Synchronizer editor編輯*.hbm檔案;

l         用一種叫做Velocity的語言定製個人化的代碼和資源產生模板(通常沒有必要);

二、使用Hibernate Synchronizer外掛程式的步驟:

1、  通過Eclipse的軟體更新功能安裝外掛程式(Eclipse 3.X的外掛程式更新網址:: http://www.binamics.com/hibernatesync);

2、  配置外掛程式的屬性。可以分別在工作台層級和項目層級配置。通常使用預設值。可配置的項目包括:

l         修改並儲存hbm時是否自動更新值對象(value object);

l         是否自動產生DAOs或值對象(value object);

l         配置產生DAOs和值對象(value object)時的包名。

3、  通過外掛程式產生Hibernate Configuration File;

4、  通過外掛程式產生*.hbm (Hibernate Mapping File)檔案;

5、  必要時用外掛程式提供的Editor編輯*.hbm檔案;

6、  通過外掛程式把重新設定Hibernate Configuration File的mapping resource;

7、  通過*.hbm同步產生DAOs和值對象(value object);

三、淺析Hibernate Synchronizer外掛程式產生的程式碼。

在這個例子中,使用Hibernate Synchronizer外掛程式同步了資料庫中的兩個表:T_Order和T_User。T_User和T_Order是一對多的關係。

在預設設定的情況下,外掛程式產生的包圖如下:

base包中存放外掛程式產生的五個抽象類別,在Hibernate Synchronizer“再同步”時會覆蓋base包中的類,因此使用者不要把客戶代碼放在base中的類裡。換句話說,任何時候不要修改這些類。

dao包中存放的三個類,分別繼承自base包中相應的三個類。dao包中的三個類完全是空的實現,客戶可以在這裡插入自己的代碼。採用這樣的結構,就把客戶代碼從外掛程式產生的程式碼中分離出來,即實現了客戶對外掛程式產生代碼的定製,又不會在外掛程式“再同步”時影響到客戶代碼。

在預設設定的情況下,外掛程式產生的類圖如下:

左邊的六個類是DAOs,右邊的四個類是持久類。

所有的DAOs繼承自_BaseRootDAO,這個抽象類別封裝了公用的Hibernate操作方法。抽象類別_RootDAO直接繼承自_BaseRootDAO,客戶可以在這裡對_BaseRootDAO進行定製,把公用層級的Hibernate操作放在這裡。_BaseRootDAO下級的Base…DAO是持久類的DAO,它仍然是抽象類別,目的是讓它的子類實現定製的方法。

所有的值對象(value object)都分為兩個層次,抽象的基類(如BaseTOrder、BaseTUser)和實作類別(TOrder、TUser)。抽象層次包含Hibernate Synchronizer外掛程式產生的持久類,實現層次可以包含客戶的定製代碼。

四、使用Hibernate Synchronizer外掛程式產生的程式碼。

在自己的代碼中使用Hibernate Synchronizer產生的程式碼非常簡單。

_RootDAO.initialize(); 

TUserDAO dao = new UserDAO();
TUser user = dao.load("zhangyu");
user.setMail(e-zhangyu@vip.sina.com);
dao.update(user);

_RootDAO.initialize()是必須的。Hibernate Synchronizer產生的持久對象是標準的Hibernate持久對象,包含一組set和get方法。DAOs負責操作持久對象,包括對session和交易管理、load和釋放對象、save或update、查詢等功能。有了DAOs,客戶代碼十分簡潔。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.