程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 用Eclipse Hibernate Synchronizer插件開發Hibernate應用

用Eclipse Hibernate Synchronizer插件開發Hibernate應用

編輯:關於JAVA

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("[email protected]");

dao.update(user);

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

作者簡介:

張昱,可以通過[email protected] 與作者取得聯系。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved