利用Eclipse開發Hibernate應用程序
利用Eclipse開發Hibernate應用程序時間:2006-01-24 作者:俞黎敏 瀏覽次數: 22741 本文關鍵字: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: QL Driver Class: org.git.mm.mysql.Driver Database URL: jdbc:mysql://localhost:3306/HibernateTest Username: root Password:
點擊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的輔助好工具

![]() | ![]() | ![]() |

- Eclipse插件之Bytecode Outline
- Eclipse插件之EasyExplorer
- Eclipse插件之FindBugs
- Eclipse插件之Implementors
- Eclipse插件之SQLExplorer
- Eclipse插件之WebLogic Plugin 2.0.0
- Eclipse插件之Spring IDE
?