文章目錄
利用Eclipse開發Hibernate應用程式
時間:2006-01-24
作者:俞黎敏
瀏覽次數:
12446
本文關鍵字:Eclipse, Hibernate, 外掛程式, ORM
介紹如何利用Hibernate Synchronizer外掛程式在Eclipse 3.0.1中快速的開發Hibernate應用程式,提高我們的工作效率。
Eclipse是目前非常流行的開發平台,開放擴充的架構讓很多程式員找到了自己個人化的工作環境,Hibernate也是目前很流行的O/R Mapping架構,至少在EJB 3.0大行其道之前,它是我們在考慮O/R Mapping時非常好的選擇。
關於Hibernate架構的細節,請參考《Hibernate in Action》一書。
首先需要安裝這個外掛程式,Eclipse 3.0.1為我們提供了更加方便的外掛程式管理方式,選擇菜單“協助—軟體更新—尋找並安裝”,選擇“搜尋要安裝的新功能組件”,操作介面如下:
選擇 New Remote Site ,填寫名稱 Hibernate PlugIn ,下面的URL中填入:http://www.binamics.com/hibernatesync
如:
然後在“安裝”介面中選中我們剛添加的 Hibernate PlugIn ,開啟它,選中下一級的Synchronizer,然後Next,以下的安裝根據提示進行Next即可了。
Eclipse就可以自己下載完成安裝,然後Eclipse自動重啟動一次就完成了。
Spring PlugIn的地址為:
http://springframework.sourceforge.net/spring-ide/eclipse/updatesite/
安裝配置類似於Hibernate PlugIn的安裝。
Spring的地址為:
http://www.springframework.org/
下面示範一個最簡單的單表操作,讓我們熟悉開發過程。我們選擇MySQL資料庫來做這個應用,首先在MySQL裡建立一個新的資料庫為HibernateTest,再建立一個資料表,名為Person,包含ID, Name, Sex, Address四個欄位,建表語句如下:
# Host: localhost# Database: hibernatetest# Table: 'person'# CREATE TABLE `person` ( `ID` int(11) NOT NULL auto_increment, `Name` varchar(20) NOT NULL default '', `Sex` char(1) default NULL, `Address` varchar(200) default NULL, PRIMARY KEY (`ID`)) TYPE=MyISAM;
然後建立一個普通的Java項目:“File -> Project -> New Project ->Java Project
輸入項目名稱:HibernateMySQL
注意加入Hibernate的所有lib檔案,包括有Hibernate下面的hibernate2.jar和lib目錄下面的所有.jar檔案;
還有要加入MySQL的jdbc驅動檔案,比如mysql-connector-java-3.0.14-production-bin.jar
驅動程式自己選擇載入,版本不同,檔案名稱也不同:)
下面我們需要在項目中加入一個Hibernate的設定檔,在src目錄下選擇 New -> Other -> Hibernate -> Hibernate Configuration File,如:
在彈出的介面中,你需要指定要使用的資料庫,以及串連資料庫所需要的資訊,我們對應的選擇了資料庫為MySQL,並配置了資料庫的URL和管理員帳號與密碼,如下:
Database Type: QLDriver Class: org.git.mm.mysql.DriverDatabase URL: jdbc:mysql://localhost:3306/HibernateTestUsername: rootPassword:
點擊Browse按鈕,在彈出的框中輸入Driver,在下面就會出現相應的驅動所在的包
我們選中org.git.mm.mysql.Driver所在的包的檔案,確定即可。
在中,我們還可以指定從JNDI資料來源中獲得串連,可以點擊 Datasource 標籤進行配置。
點擊 Finish 按鈕之後系統會自己產生一個名為 hibernate.cfg.xml 的檔案,裡麵包含了基本的配置資訊,如果需要進階配置,可以手動設定,也可以通過其它外掛程式來進行編輯,比如MyEclipse的XML Editor
下面要產生對應檔,首先建立一個包 New -> Package,輸入net.echochina.hibernatetest
在這個包下選擇 New -> Other -> Hibernate -> Hibernate Mapping File ,在彈出的介面中點擊 Refresh 按鈕,將會列出庫中所有的資料表,選中我們要使用的 Person 表,點擊 Browse 按鈕,選擇我們所要產生的POJO檔案所在的包:net.echochina.hibernatetest
如:
在上述介面的 Properties 標籤中可以配置hbm的其他選項,包括副檔名,彙總列名,ID建置規則等。完成後,系統會自動產生一個名為 Person.hbm 的檔案,我們可以通過這個檔案產生相關的存根類。
在Person.hbm檔案上單擊右鍵,選擇 Hibernate Synchronizer -> Synchronize Files
該操作將產生三個包八個類檔案,裡面封裝了Hibernate的操作細節,讓我們可以專心面對商務邏輯的開發,仔細閱讀這些檔案可以提高你對Hibernate的認識,增長應用技巧。
然後我們需要在Hibernate的設定檔中添加對Person 的相關資訊,在Person.hbm上單擊右鍵,選擇Synchronizer -> Add Mapping Reference
現在我們可以開始編寫自己的程式邏輯了,代碼可以寫在
net.echochina.hibernatetest.dao.PersonDAO類中,這個類的代碼不會被外掛程式進行修改的。
首先在資料庫裡增加一條新的記錄
在PersonDAO類中增加一個引入import net.echochina.hibernatetest.Person;
然後加入一個main方法,內容如下:
public static void main(String args[]){try{_RootDAO.initialize();PersonDAO persondao = new PersonDAO();Person person = new Person();person.setName("YuLimin");person.setSex("M");person.setAddress("http://Java.EchoChina.net");persondao.save(person);}catch(Exception e){e.printStackTrace();}}
//測試MySQL的中文問題:更改內容如下,把setName的參數改為中文的內容:
person.setName("俞黎敏");
這裡應當到hibernate.cfg.xml檔案的<session-factory/>塊中增加上如下兩行設定
<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">GBK</property>
這樣插入資料與讀取資料時才不會有中文的問題,如果仍有中文問題請Google吧:)
可以看出,外掛程式已經把session操作和事務操作都封裝起來了,我們的代碼工作得到了極大的簡化。而且我們可以利用外掛程式內建的Hibernate Editor來編輯hbm檔案,非常方便。
我們還需要把ID的產生方式改為 identity,右鍵Person.hbm,Open With -> Hibernate Editor
把ID的產生方式改為 identity
要讓這個程式正常運行,還需要對設定檔hibernate.cfg.xml作一些修改。
使用Eclipse的 文字編輯器 開啟該檔案,其中有如下的內容:
<!-- <property name="hibernate.transaction.factory_class">net.sf.hibernate.transaction.JTATransactionFactory</property><property name="jta.UserTransaction">java:comp/UserTransaction</property> -->
由於在我們的例子中,並沒有使用JTA來控制事務,所以需要將上面的內容注釋掉,程式才能正常運行。
現在可以開始運行了,點擊Run
在出現的配置中選擇Java Application,Name中輸入PersonDAO
單擊Search 按鈕,在彈出地框中選擇net.echochina.hibernatetest包中的PersonDAO類
OK之後,點擊Run開始運行,如果以上各步操作正確的話,可以看到資料已經被儲存到資料庫。
如果在實際開發工作中,需要重新設計資料表結構,那麼只需要在.hbm檔案中做相應的修改,然後執行 Synchronize and Overwrite 的操作,外掛程式會重建存根檔案,我們只需要修改程式邏輯就可以了,非常方便。有了這樣的功能外掛程式,我們可以極大的從設定檔的編寫、查錯中解脫出來,從而提高我們的工作效率。
Hibernate 常用工具
Hibernate Synchronizer 很好的輔助開發工具,是一個Eclipse 的外掛程式,可以產生80%的代碼,首選。
MyEclipse 安裝的 3.8.3 感覺非常的強大,主要是因為他是付費的,做得比較全面,喜歡他們的struts 組件,開發 Struts 必不可少。
Hibernator Hibernate查詢的協助工具輔助,可以使用 HSQL進行查詢,測試HSQL的好工具,是個Eclipse外掛程式。
Hibern8IDE(現更名為:HibernateConsole) 一個單獨啟動並執行Hibernate工具,可以運行 Hibernate Query Language (HQL)語句。
MiddleGen 產生持久對象的工具,可以產生
Persistence layer with EJB (CMP 2.0)
Persistence layer with JDO
Persistence layer with Hibernate
Persistence layer with Torque
Database GUI with JSP/Struts
http://spindle.sourceforge.net 開發Tapestry的必備
http://springui.sourceforge.net 寫Spring Application Context File的輔助好工具
| 作者簡介 |
| |
dev2dev ID: YuLimin, BEA dev2dev論壇Web Application Development版版主。 首頁:http://202.101.111.1/123/ 部落格:http://iAMin.BlogDriver.com |
作者其它文章
- Eclipse外掛程式之Bytecode Outline
- Eclipse外掛程式之FindBugs
- Eclipse外掛程式之EasyExplorer
- Eclipse外掛程式之Implementors
- Eclipse外掛程式之SQLExplorer