目前Java IDE的主流自然是eclipse系列,我一直用的也是這個。在Sun積極宣傳Netbeans5.5的時候,我也試用了一下,并沒有找到從eclipse轉(zhuǎn)移過去的理由。我對它的不滿意主要有兩點(diǎn):
1、沒有所見即所得的JSP/HTML編輯器。
2、沒有為Hibernate提供開發(fā)支持。
Netbeans5.5在java 6下的桌面開發(fā)能力很強(qiáng),不過短期內(nèi)我還用不上。
下面重點(diǎn)說說Eclipse平臺下的一些開發(fā)工具。
1、JSP/HTML編輯工具
Lomboz是開源的JSP編輯器,不過它不支持所見即所得的可視化編輯。雖然我并不喜歡在可視化設(shè)計界面中通過拖拉來調(diào)整頁面。但是它對代碼的快速定位是我所需要的。
Bea Workshop for JSP的確精彩,不過它要求把所有的JSP一個WEB-INF的目錄。我的項目很大,每個模塊都有獨(dú)立的JSP目錄,這個要求很煩的。好像這個目錄可以配置(但是必須有),不過由于其它原因,我已經(jīng)放棄了。
我現(xiàn)在選的是MyEclipse,它的JSP編輯器做得不如Bea Workshop精細(xì)和強(qiáng)大,但是自由,夠用。另外,MyEclipse比Bea Workshop便宜得多,有可能說服老板買單。不過,MyEclipse集成的Hibernate功能著實(shí)讓我光火了很長的時間。
2. Hibernate集成工具
在Eclipse中集成Hibernate開發(fā)的有三種:Hibernate官方出的Hibernate Tools, Myeclipse和Bea Workshop。Jbuilder 2007也部分支持Hibernate。Hibernate Tools是開源的,其它的工具都是在它的基礎(chǔ)上進(jìn)行增強(qiáng)而來的。
如果使用Ant命令來操作Hibernate Tools,你會發(fā)現(xiàn)它非常強(qiáng)大,可以靈活的在表,HBM和pojo間互相轉(zhuǎn)換。可是它的Eclipse集成太狠了點(diǎn),只要求一個逆向工程的配置文件,就可以根據(jù)數(shù)據(jù)庫表生成所有的HBM和pojo。這個功能貌似一步到位,其實(shí)很不靈活。
(1)如何寫好HBM是很有學(xué)問的,我經(jīng)常需要細(xì)心的調(diào)理好HBM再生成pojo。
(2)每次生成時都一刀切的做法對于增量開發(fā)來說是個災(zāi)難。好不容易調(diào)理好的HBM和Pojo,一下子全被沖掉了。
(3)它的數(shù)據(jù)庫連接也有個問題,不會過濾Schema,每次都把所有的數(shù)據(jù)庫列出來。我們的開發(fā)數(shù)據(jù)庫服務(wù)器上安裝有三四十個數(shù)據(jù)庫,想想多么恐怖啊。
Hibernate Tools最強(qiáng)的功能,當(dāng)數(shù)HQL編輯器。可以查錯,可以檢查最終生成的SQL,可以得到運(yùn)行結(jié)果,可以添加參數(shù)。這些功能實(shí)在是太有用了。
Myeclipse對Hibernate Tools進(jìn)行了改進(jìn)。所以它和原生的Hibernate Tools共存時會發(fā)生一些奇怪的問題。Myeclipse中有兩個改進(jìn)非常棒:指定數(shù)據(jù)庫Schema(再也不用在三四個數(shù)據(jù)庫中找我的那份試驗田了),根據(jù)選中的HBM生成Pojo(放心大膽的用吧,已經(jīng)做好的HBM和Pojo不會再被沖掉了)。
不過,Myeclipse對HQL編輯器的改進(jìn)就有點(diǎn)讓人光火了。首先是連接問題,橫豎就是連不上數(shù)據(jù)庫,左找右找找不到原因,最后把Eclipse workspace重建,把相同的配置連接,一下子又可以了。
其次,Myeclipse沒有提供新建HQL編輯器的菜單,而是在我手工建立一個hql的文件后,在打開它時調(diào)用HQL編輯器!打開的過程可能涉及到數(shù)據(jù)庫連接,非常慢。如果你在退出eclipse中沒有關(guān)掉HQL文件,那么再次進(jìn)入eclipse的時候,您先去喝杯茶,慢慢等吧。
Bea Workshop各方面做得都非常精致,Hiberenate集成也不例外,各類編輯器的功能布局明了易用。但是我在試用時碰到一個難以置信的致命的bug:所有Bea Workshop編輯器和對話框中的文本輸入框基本不接收光標(biāo)!
這是什么概念?就是說你沒法點(diǎn)進(jìn)文本框,沒法輸入任何東西。我唯一成功的一次是在沒有光標(biāo)的情況下,亂打了幾個字母再回車。對話框沒有顯示任何東西直接關(guān)閉,但在主編輯器中我打的字母顯示了出來。不過除了文本框外,其它的如下拉框,選擇框都正常。
哪個開發(fā)人員會出這么離譜的Bug啊!我試過兩臺機(jī),問題一模一樣。難道是因為我的JDK是1.5的緣故?!
不管什么原因,我是沒辦法再試下去了,只好將其請出了我的電腦。在請出之前,通過菜單檢查,沒有發(fā)現(xiàn)指定HBM生成Pojo的功能。這兩大原因,足夠我放棄它了。
Jbuilder 2007做得太強(qiáng)了。我用它明顯感覺小腳穿大鞋。人家根本不希罕Hibernate。僅僅把Hiberenate作為EJB 3.0和JPA的一種實(shí)現(xiàn)方式。所以根據(jù)沒有HBM這一說。而且是徹頭徹尾的可視化MDA開發(fā)。真的需要一個明星團(tuán)隊,在嚴(yán)格的流程支持下,才能玩轉(zhuǎn)Jbuilder 2007。我兩個條件都不符合,最重要的是老板嫌它太貴,只能放棄。
Technorati : JSP, bea JSP workshop, lomboz, myeclipse