利用Eclipse開發Hibernate應用程式(Hibernate Synchronizer外掛程式)

來源:互聯網
上載者:User
文章目錄
  • Hibernate 常用工具
 利用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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.