計算機專業(yè)外文翻譯--在Eclipse中使用Hibernate.doc_第1頁
計算機專業(yè)外文翻譯--在Eclipse中使用Hibernate.doc_第2頁
計算機專業(yè)外文翻譯--在Eclipse中使用Hibernate.doc_第3頁
計算機專業(yè)外文翻譯--在Eclipse中使用Hibernate.doc_第4頁
計算機專業(yè)外文翻譯--在Eclipse中使用Hibernate.doc_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

附錄C英文譯文在Eclipse中使用Hibernate摘要:最近我開始使用Eclipse作為我的開發(fā)環(huán)境,我開始研究其他人提供的對Eclipse的擴展。例如,當用到xml文件時,我使用XMLBuddy插件.在這篇文章中,我們將探索其中之一:HibernateSynchronizer.。介紹最近我開始使用Eclipse作為我的開發(fā)環(huán)境,部分原因是因為在我進行開發(fā)的許多平臺上都可以使用Eclipse來工作,還有部分原因是因為Eclipse是展示人人皆可作出貢獻的開放、可擴展環(huán)境的優(yōu)勢的一個極好的例子。我開始研究其他人提供的對Eclipse的擴展。例如,當用到xml文件時,我使用XMLBuddy插件。該插件對于我的工作很有助益。因為最近一直在寫DevelopersNotebook,所以我很想知道是不是已經(jīng)有人寫了關于Hibernate的插件,事實上,有好幾個這樣的插件正在開發(fā)。在這篇文章中,我們將探索其中之一:HibernateSynchronizer.HibernateSynchronizer在我找的和Hibernate有關的插件中,HibernateSynchronizer最令我感興趣,因為它為我在DevelopersNotebook書中采用的以映射為中心的工作流(mapping-centricworkflow)提供了最好的支持。(可以用多種方法使用Hibernate,你可能會試試其它一些插件,它們提供的方法可能正是你自己特定環(huán)境所要求的)。事實上,當使用HibernateSynchronizer時,如果你改變了映射文件,你不需要為更新相應的java文件而勞心費神。當你編輯映射文件時,和Eclipse采取的方法類似,該插件自動更新你的java代碼。還不止于此,還提供了比Hibernate內(nèi)建的代碼生成工具更多的功能:它為每個映射對象創(chuàng)建一對類(apairofclasses),其中一個是基礎類,當你改變映射內(nèi)容時,它可以隨意重寫這個類;另一個類作為該基礎類的子類,在子類中,你可以添加具體的商業(yè)邏輯和另一些代碼。使用這個插件生成java代碼時,不用象使用Hibernate內(nèi)置的代碼生成工具那樣,擔心其它代碼(如商業(yè)邏輯的代碼)會在你的眼皮底下消失。對于以Hibernate影射文檔為基礎的方法,還有一些其它的好處,HibernateSynchronizer有一個新編輯器,當編輯這類文件時,為Eclipse添加了智能輔助和自動完成功能。一個比較好的、以DTD驅(qū)動的XML編輯器,如以前提及的XMLBuddy,也可以完成部分功能。與此相比,HibernateSynchronizer利用對影射文檔語義的了解,提供了更進一步的功能。例如,提供了對屬性和影射關系的可視化顯示,創(chuàng)建新元素的向?qū)Ы缑?,象以上提及的一樣,缺省設置情況下,當你編輯影射文檔時,編輯器會自動生成數(shù)據(jù)訪問類(data-accessclass).當然還有其它一些功能,在Eclipse的新建(New)菜單中,提供了一個向?qū)?,可以用來?chuàng)建Hibernate配置文件和映射文件,在包資源瀏覽器(packageexplorer)和其它一些合適的地方增加了上下文菜單,方便調(diào)用和Hibernate相關的功能。好了,在這些抽象的描述之后,到了開始做實事的時候,當然,這正是你興趣所在,不然你就不會讀這篇文章。怎么安裝和使用呢?下邊一一解釋。安裝HibernateSynchronizer可以用Eclipse內(nèi)置的更新管理器(UpdateManager)來安裝。對Eclipse2.1和即將發(fā)布的Eclipse3的用戶提供了不同的更新站點。(因為用Eclipse作關鍵性的工作,我仍使用作為產(chǎn)品發(fā)行的2.1版。當我寫這篇文章的時候,Eclipse3已經(jīng)進入了“候選發(fā)布”階段。我希望當我今夏晚些時候從JavaOne回來時,我可以更新到版本3的產(chǎn)品發(fā)行版。提及這個的主要原因是因為我想強調(diào)一下,這些指南是以Eclipse2的角度的來講解,毫無疑問,一些命令和窗口會在版本3中發(fā)生變化,因此,當你使用Eclipse3時,你應當做一些相應的調(diào)整。我印象中HibernateSynchronizer自己的installinstructions是針對Eclipse3,也許這對你有所幫助。啟動Eclipse,順次單擊幫助(Help)-軟件更新(SoftwareUpdates)-更新管理器(UpdateManager)來打開更新管理器,當安裝/更新(Install/Update)透視圖打開之后,在功能更新視圖(FeatureUpdates)中用右鍵單擊(如果你用的單鍵,你需要control-click)。選擇新建(New)-站點書簽(SiteBookmark)。在更新管理器中添加HibernateSynchronizer插件的更新地址在彈出對話框中,輸入適合你的Eclipse版本的插件地址:Eclipse2.1:/hibernatesync/eclipse2.1Eclipse3:/hibernatesync還需要為新建的書簽命名,HibernateSynchronizer就是個很貼切的名字。單擊完成(Finish)后,新建的書簽就會出現(xiàn)在功能更新(FeatureUpdates),實際安裝該插件,單擊該書簽左邊的三角形符號,然后再次單擊在書簽下邊出現(xiàn)的條目左邊的三角形符號,繼續(xù)這個過程,一直到書簽下邊出現(xiàn)的條目中出現(xiàn)該插件的圖標。單擊該條目,就會出現(xiàn)一個可以讓你安裝的界面,單擊InstallNow,讓Eclipse引導你完成安裝許可協(xié)議,你可以看看下邊Trade-Offs部分對許可協(xié)議的一些討論。當你打算在實際的項目中使用該插件時,想必你會仔細研究該協(xié)議。我認為也許好一點,不過該插件基于GPL協(xié)議,而不是開放源代碼,令人迷惑。選擇安裝位置,缺省的已經(jīng)很好了。安裝沒有簽名插件時的標準警告?,F(xiàn)在已經(jīng)完成安裝,你需要退出,然后重新啟動Eclipse以使所做的更改生效。看上邊的對話框好像說能夠自動重新啟動Eclipse。,以我的經(jīng)驗,Eclipse只會退出,還是需要你自己手工重新啟動。這可能是MaxOSX平臺上Eclipse2.1的一個局限。Eclipse3已經(jīng)許諾把對OSX的支持列入第一級別。無論如何,這只是個小問題。如果你需要重新啟動Eclipse,現(xiàn)在就可以這樣做。安裝完之后,接著需要對其對其進行配置,以便在項目中使用。配置重新啟動Eclipse后,關閉安裝/更新透視圖。打開一個使用Hibernate的Java工程.如果你已經(jīng)完成了DevelopersNotebook,一書中的例子,那么就有幾個目錄可供你選擇,這里以書中第三章中的例子來說明。第三章是可以在線免費獲得的樣章,你還可以從該書的站點下載所有例子的源代碼。如果你打算使用其中的一個例子來新建一個Eclipse工程,選擇文件(File)-新建(New)-工程(Project),選定工程類型,然后單擊下一步(Next),填入該工程名(我填的是HibernateCh3,如圖11所示),不要復選使用缺省檢查框(Usedefault),這樣你可以告訴Eclipse從哪里找到已經(jīng)存在的工程目錄,單擊瀏覽按鈕(Browse)來定位目錄。選定工程目錄后可以單擊完成(Finish)來創(chuàng)建工程。不過,一般情況下我喜歡單擊下一步(Next)來復查Eclipse為此工程所作的設置(當然,如果發(fā)現(xiàn)有些配置不對,總是可以選擇回退來修改這些設置。不過,我總是發(fā)現(xiàn),如果有一個庫文件丟失或是其它一些原因,會有非常多的錯誤和警告信息)。在當前情況下,我的謹慎有點多余。Eclipse準確的算出了目錄是如何組織以及是用來干什么的,找到我為使用Hibernate和HSQLDB數(shù)據(jù)庫而下載的第三方庫(下載和安裝的詳細過程可以參看書中第一章)。如此聰明的適應能力是Eclipse優(yōu)點之一。圖12顯示新工程已經(jīng)打開,準備好可以用來做實驗。從這個圖中也可以推斷Eclipse不喜歡調(diào)整窗口大小使其小到形成合適的屏幕布局。從現(xiàn)在開始,顯示的屏幕截圖只顯示窗口的一部分,而不是完整的窗口。下一個需要做的工作是創(chuàng)建一個Hibernate配置文件,提供給HibernateSynchronizer使用。在src目錄中已經(jīng)有了一個perties文件,這是書中例子使用的配置。這里有個問題,壞消息是HibernateSynchronizer只能使用XML樣式的Hibernate配置文件。這樣,就需要把perties中的內(nèi)容移植到XML樣式的配置文件hibernate.cfg.xml中。好消息是,這正是HibernateSynchronizer創(chuàng)建配置文件向?qū)У谝淮未箫@身手的時候。選擇文件(File)-新建(New)-其它(Other),然后在彈出對話框選取剛可用的Hibernate類,選取HibernateConfigurationFile,然后單擊下一步(Next).打開向?qū)r,保存文件的位置和在Eclipse中現(xiàn)在選擇的文件有關。請確保把該文件保存在src目錄中。添加其余一些向?qū)枰男畔?,這些信息應該和配置文件的版本相一致,如圖14中所示。值得注意的是,和用Ant來控制Hibernate的運行(書中使用就是這種方法)不同,這里你無法控制Hibernate運行時的當前工作目錄,因此你需要在URL文件中使用路徑的全稱。我自己的添加的URL值(有點難看)為jdbc:hsqldb:/Users/jim/Documents/Work/OReilly/Hibernate/Examples/ch03/data/music.(如果有人知道怎么讓Eclipse或是HibernateSynchronizer使用一個工程特定的目錄,你可以告訴我,我很想知道。因為我才開始使用Eclipse,是個新手。如果有人告訴我這是可能的,只是因為我不知道怎么做而已,我一點也不會感到吃驚)添加DriverClass的方法有點奇怪,你需要確定該driver類在該工程的類路徑中)。如果你輸入jdbcD,窗口就會出現(xiàn)這個選擇,很容易就可以從中選取一個。完成后單擊Finish來完成創(chuàng)建配置文件。HibernateSynchronizer現(xiàn)在已經(jīng)可以開始使用了。完成創(chuàng)建文件后,配置文件會打開,這時候你就可以看看HibernateXML格式的配置文件的結(jié)構(gòu)和細節(jié)。生成的配置文件要想測試配置文件是否可用,有一個又快又簡單的方法:使用向?qū)韯?chuàng)建一個影射文件。選擇文件(File)-新建(New)-其它(Other),選取Hibernate類別,然后再選Hibernate影射文件,單擊下一步(Next)。向?qū)С霈F(xiàn)的時候,其中有些屬性已經(jīng)自動填入了在配置文件中相應屬性的值,單擊Refresh(確保可以通過這些信息和你的數(shù)據(jù)庫相連)。和數(shù)據(jù)庫連接后,會顯示庫中的表,這里只有一個TRACK表。第一次使用的時候,不知什么原因,需要你指定包含HSQLDB驅(qū)動的.jar文件的路徑。好在你只需要指定一次。只要你認為工作正常(譯者注:顯示了數(shù)據(jù)庫中有權(quán)限訪問的表),單擊Cancel。試驗中使用已有的影射文件,不需要實際創(chuàng)建一個。生成代碼這可能是你一直在等待的部分。我們能用這個插件來做什么?好,馬上就開始。為Hibernate影射文檔提供一個新的菜單條目。右擊(如果是單鍵鼠標,在按住Control鍵的同時點鼠標鍵)一個影射文檔,菜單條目中會顯示幾個和Hibernate相關的選擇,其中有一個和synchronize有關,這是一個手工方法,可以讓HibernateSynchronizer產(chǎn)生和該影射文檔相對應的數(shù)據(jù)訪問對象。Synchronizer插件為影射文檔提供的幾個菜單項AddMappingReference選項也很有用,當你單擊該項時,會把相應的影射文件增加到Hibernate配置文件中,表明該文件是影射文檔,因此你不需要在源代碼中增加任何信息要求相應的影射文件進行設置?,F(xiàn)在讓我們看看選取SynchronizeFiles后的結(jié)果。事情開始變得有趣,出現(xiàn)了兩個子包,一個是“base”的DAO,HibernateSynchronizer所有,可以在任何時候重寫,一個是繼承那些DAO類的商業(yè)對象,不會被覆蓋,也就給了我們一個機會,可以在其中加入商業(yè)邏輯(具體如圖18中所示)。和Hibernate的代碼生成工具相比,用該插件生成了更多的類。這是優(yōu)點,也可能是一些潛在的缺點,將在Trade-Offs部分進行討論。你可以在工程配置文件中選取要生成的類和它們所在的包的結(jié)構(gòu)。我可以證明這點,但現(xiàn)在的發(fā)行版有個bug,,無法訪問MacOSX上的配置界面。針對該bug的一個補丁已經(jīng)做好了,但仍沒有發(fā)布。基于HibernateSynchronizer網(wǎng)頁上的例子,和以下這個類一起,用那些新的數(shù)據(jù)訪問對象來試著把一些數(shù)據(jù)放入數(shù)據(jù)庫中??雌饋砗蜆藴实腍ibernate代碼生成工具生成的版本(在Hibernate:ADevelopersNotebook一書的39-40頁)很相似,甚至更簡單一些。因為HibernateSynchronizer生成的類為你的每個數(shù)據(jù)庫操作都創(chuàng)建和提交一個新事務,因此在與此類似的簡單情況下,你不需要自己來設置事務(當然,如果你需要把一組操作作為一個單獨事務,有很多方法可以做到這點)這里是新版本的代碼。packagecom.oreilly.hh;importjava.sql.Time;importjava.util.Date;importnet.sf.hibernate.HibernateException;importcom.oreilly.hh.dao.TrackDAO;importcom.oreilly.hh.dao._RootDAO;/*TrycreatingsomedatausingtheHibernateSynchronizerapproach.*/publicclassCreateTest2publicstaticvoidmain(Stringargs)throwsHibernateException/Loadtheconfigurationfile_RootDAO.initialize();/CreatesomesampledataTrackDAOdao=newTrackDAO();Tracktrack=newTrack(RussianTrance,vol2/album610/track02.mp3,Time.valueOf(00:03:30),newDate(),(short)0);dao.save(track);track=newTrack(VideoKilledtheRadioStar,vol2/album611/track12.mp3,Time.valueOf(00:03:49),newDate(),(short)0);dao.save(track);/Wedontevenneedatrackvariable,ofcourse:dao.save(newTrack(GravitysAngel,/vol2/album175

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論