利用Eclipse開發(fā)Hibernate應(yīng)用程序
介紹如何利用Hibernate Synchronizer插件在Eclipse 3.0.1中快速的開發(fā)Hibernate應(yīng)用程序,提高我們的工作效率,。 Eclipse是目前非常流行的開發(fā)平臺(tái),開放擴(kuò)展的架構(gòu)讓很多程序員找到了自己個(gè)性化的工作環(huán)境,,Hibernate也是目前很流行的O/R Mapping框架,,至少在EJB 3.0大行其道之前,它是我們?cè)诳紤]O/R Mapping時(shí)非常好的選擇,。 關(guān)于Hibernate框架的細(xì)節(jié),,請(qǐng)參考《Hibernate in Action》一書。 首先需要安裝這個(gè)插件,,Eclipse 3.0.1為我們提供了更加方便的插件管理方式,,選擇菜單“幫助—軟件更新—查找并安裝”,選擇“搜索要安裝的新功能部件”,,操作界面如下: 選擇 New Remote Site ,,填寫名稱 Hibernate PlugIn ,,下面的URL中填入:http://www./hibernatesync 如下圖: 然后在“安裝”界面中選中我們剛添加的 Hibernate PlugIn ,打開它,,選中下一級(jí)的Synchronizer,,然后Next,以下的安裝根據(jù)提示進(jìn)行Next即可了,。 Spring PlugIn的地址為: Spring的地址為: 下面演示一個(gè)最簡(jiǎn)單的單表操作,,讓我們熟悉開發(fā)過程。我們選擇MySQL數(shù)據(jù)庫來做這個(gè)應(yīng)用,,首先在MySQL里建立一個(gè)新的數(shù)據(jù)庫為HibernateTest,,再建立一個(gè)數(shù)據(jù)表,名為Person,,包含ID, Name, Sex, Address四個(gè)字段,,建表語句如下: # 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; 然后新建一個(gè)普通的Java項(xiàng)目:“File -> Project -> New Project ->Java Project 輸入項(xiàng)目名稱:HibernateMySQL 注意加入Hibernate的所有l(wèi)ib文件,包括有Hibernate下面的hibernate2.jar和lib目錄下面的所有.jar文件,; 下面我們需要在項(xiàng)目中加入一個(gè)Hibernate的配置文件,,在src目錄下選擇 New -> Other -> Hibernate -> Hibernate Configuration File,如下圖: 在彈出的界面中,,你需要指定要使用的數(shù)據(jù)庫,,以及連接數(shù)據(jù)庫所需要的信息,我們對(duì)應(yīng)的選擇了數(shù)據(jù)庫為MySQL,,并配置了數(shù)據(jù)庫的URL和管理員賬號(hào)與密碼,,如下: Database Type: QL Driver Class: org.git.mm.mysql.Driver Database URL: jdbc:mysql://localhost:3306/HibernateTest Username: root Password: 點(diǎn)擊Browse按鈕,在彈出的框中輸入Driver,,在下面就會(huì)出現(xiàn)相應(yīng)的驅(qū)動(dòng)所在的包 在上圖中,,我們還可以指定從JNDI數(shù)據(jù)源中獲得連接,,可以點(diǎn)擊 Datasource 標(biāo)簽進(jìn)行配置。 點(diǎn)擊 Finish 按鈕之后系統(tǒng)會(huì)自己生成一個(gè)名為 hibernate.cfg.xml 的文件,,里面包含了基本的配置信息,,如果需要高級(jí)配置,可以手動(dòng)配置,,也可以通過其它插件來進(jìn)行編輯,,比如MyEclipse的XML Editor 下面要生成映射文件,,首先新建一個(gè)包 New -> Package,輸入net.echochina.hibernatetest 在這個(gè)包下選擇 New -> Other -> Hibernate -> Hibernate Mapping File ,,在彈出的界面中點(diǎn)擊 Refresh 按鈕,,將會(huì)列出庫中所有的數(shù)據(jù)表,選中我們要使用的 Person 表,,點(diǎn)擊 Browse 按鈕,,選擇我們所要生成的POJO文件所在的包:net.echochina.hibernatetest 如下圖: 在上述界面的 Properties 標(biāo)簽中可以配置hbm的其他選項(xiàng),包括文件擴(kuò)展名,,聚合列名,,ID生成規(guī)則等。完成后,,系統(tǒng)會(huì)自動(dòng)生成一個(gè)名為 Person.hbm 的文件,,我們可以通過這個(gè)文件生成相關(guān)的存根類。 在Person.hbm文件上單擊右鍵,,選擇 Hibernate Synchronizer -> Synchronize Files 該操作將生成三個(gè)包八個(gè)類文件,,里面封裝了Hibernate的操作細(xì)節(jié),讓我們可以專心面對(duì)業(yè)務(wù)邏輯的開發(fā),,仔細(xì)閱讀這些文件可以提高你對(duì)Hibernate的認(rèn)識(shí),,增長(zhǎng)應(yīng)用技巧。 然后我們需要在Hibernate的配置文件中添加對(duì)Person 的相關(guān)信息,,在Person.hbm上單擊右鍵,,選擇Synchronizer -> Add Mapping Reference 現(xiàn)在我們可以開始編寫自己的程序邏輯了,代碼可以寫在 首先在數(shù)據(jù)庫里增加一條新的記錄 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(); } } //測(cè)試MySQL的中文問題:更改內(nèi)容如下,,把setName的參數(shù)改為中文的內(nèi)容: person.setName("俞黎敏"); 這里應(yīng)當(dāng)?shù)絟ibernate.cfg.xml文件的<session-factory/>塊中增加上如下兩行設(shè)置 <property name="connection.useUnicode">true</property> 這樣插入數(shù)據(jù)與讀取數(shù)據(jù)時(shí)才不會(huì)有中文的問題,,如果仍有中文問題請(qǐng)Google吧:) 可以看出,插件已經(jīng)把session操作和事務(wù)操作都封裝起來了,,我們的代碼工作得到了極大的簡(jiǎn)化,。而且我們可以利用插件自帶的Hibernate Editor來編輯hbm文件,非常方便,。
把ID的生成方式改為 identity 要讓這個(gè)程序正常運(yùn)行,,還需要對(duì)配置文件hibernate.cfg.xml作一些修改。 <!-- <property name="hibernate.transaction.factory_class"> net.sf.hibernate.transaction.JTATransactionFactory </property> <property name="jta.UserTransaction"> java:comp/UserTransaction </property> --> 由于在我們的例子中,,并沒有使用JTA來控制事務(wù),,所以需要將上面的內(nèi)容注釋掉,程序才能正常運(yùn)行,。 現(xiàn)在可以開始運(yùn)行了,,點(diǎn)擊Run 在出現(xiàn)的配置中選擇Java Application,Name中輸入PersonDAO 單擊Search 按鈕,,在彈出地框中選擇net.echochina.hibernatetest包中的PersonDAO類 OK之后,,點(diǎn)擊Run開始運(yùn)行,如果以上各步操作正確的話,,可以看到數(shù)據(jù)已經(jīng)被保存到數(shù)據(jù)庫,。 如果在實(shí)際開發(fā)工作中,需要重新設(shè)計(jì)數(shù)據(jù)表結(jié)構(gòu),,那么只需要在.hbm文件中做相應(yīng)的修改,,然后執(zhí)行 Synchronize and Overwrite 的操作,插件會(huì)重新生成存根文件,,我們只需要修改程序邏輯就可以了,,非常方便。有了這樣的功能插件,,我們可以極大的從配置文件的編寫,、查錯(cuò)中解脫出來,從而提高我們的工作效率,。 Hibernate 常用工具Hibernate Synchronizer 很好的輔助開發(fā)工具,,是一個(gè)Eclipse 的插件,可以生成80%的代碼,,首選,。 Persistence layer with EJB (CMP 2.0) http://spindle. 開發(fā)Tapestry的必備 http://springui. 寫Spring Application Context File的輔助好工具作者其它文章 |
|