目前Java IDE的主流自然是eclipse系列,我一直用的也是这个。在Sun积极宣传Netbeans5.5的时候,我也试用了一下,并没有找到从eclipse转移过去的理由。我对它的不满意主要有两点:
1、没有所见即所得的JSP/HTML编辑器。
2、没有为Hibernate提供开发支持。
Netbeans5.5在java 6下的桌面开发能力很强,不过短期内我还用不上。
下面重点说说Eclipse平台下的一些开发工具。
1、JSP/HTML编辑工具
Lomboz是开源的JSP编辑器,不过它不支持所见即所得的可视化编辑。虽然我并不喜欢在可视化设计界面中通过拖拉来调整页面。但是它对代码的快速定位是我所需要的。
Bea Workshop for JSP的确精彩,不过它要求把所有的JSP一个WEB-INF的目录。我的项目很大,每个模块都有独立的JSP目录,这个要求很烦的。好像这个目录可以配置(但是必须有),不过由于其它原因,我已经放弃了。
我现在选的是MyEclipse,它的JSP编辑器做得不如Bea Workshop精细和强大,但是自由,够用。另外,MyEclipse比Bea Workshop便宜得多,有可能说服老板买单。不过,MyEclipse集成的Hibernate功能着实让我光火了很长的时间。
2. Hibernate集成工具
在Eclipse中集成Hibernate开发的有三种:Hibernate官方出的Hibernate Tools, Myeclipse和Bea Workshop。Jbuilder 2007也部分支持Hibernate。Hibernate Tools是开源的,其它的工具都是在它的基础上进行增强而来的。
如果使用Ant命令来操作Hibernate Tools,你会发现它非常强大,可以灵活的在表,HBM和pojo间互相转换。可是它的Eclipse集成太狠了点,只要求一个逆向工程的配置文件,就可以根据数据库表生成所有的HBM和pojo。这个功能貌似一步到位,其实很不灵活。
(1)如何写好HBM是很有学问的,我经常需要细心的调理好HBM再生成pojo。
(2)每次生成时都一刀切的做法对于增量开发来说是个灾难。好不容易调理好的HBM和Pojo,一下子全被冲掉了。
(3)它的数据库连接也有个问题,不会过滤Schema,每次都把所有的数据库列出来。我们的开发数据库服务器上安装有三四十个数据库,想想多么恐怖啊。
Hibernate Tools最强的功能,当数HQL编辑器。可以查错,可以检查最终生成的SQL,可以得到运行结果,可以添加参数。这些功能实在是太有用了。
Myeclipse对Hibernate Tools进行了改进。所以它和原生的Hibernate Tools共存时会发生一些奇怪的问题。Myeclipse中有两个改进非常棒:指定数据库Schema(再也不用在三四个数据库中找我的那份试验田了),根据选中的HBM生成Pojo(放心大胆的用吧,已经做好的HBM和Pojo不会再被冲掉了)。
不过,Myeclipse对HQL编辑器的改进就有点让人光火了。首先是连接问题,横竖就是连不上数据库,左找右找找不到原因,最后把Eclipse workspace重建,把相同的配置连接,一下子又可以了。
其次,Myeclipse没有提供新建HQL编辑器的菜单,而是在我手工建立一个hql的文件后,在打开它时调用HQL编辑器!打开的过程可能涉及到数据库连接,非常慢。如果你在退出eclipse中没有关掉HQL文件,那么再次进入eclipse的时候,您先去喝杯茶,慢慢等吧。
Bea Workshop各方面做得都非常精致,Hiberenate集成也不例外,各类编辑器的功能布局明了易用。但是我在试用时碰到一个难以置信的致命的bug:所有Bea Workshop编辑器和对话框中的文本输入框基本不接收光标!
这是什么概念?就是说你没法点进文本框,没法输入任何东西。我唯一成功的一次是在没有光标的情况下,乱打了几个字母再回车。对话框没有显示任何东西直接关闭,但在主编辑器中我打的字母显示了出来。不过除了文本框外,其它的如下拉框,选择框都正常。
哪个开发人员会出这么离谱的Bug啊!我试过两台机,问题一模一样。难道是因为我的JDK是1.5的缘故?!
不管什么原因,我是没办法再试下去了,只好将其请出了我的电脑。在请出之前,通过菜单检查,没有发现指定HBM生成Pojo的功能。这两大原因,足够我放弃它了。
Jbuilder 2007做得太强了。我用它明显感觉小脚穿大鞋。人家根本不希罕Hibernate。仅仅把Hiberenate作为EJB 3.0和JPA的一种实现方式。所以根据没有HBM这一说。而且是彻头彻尾的可视化MDA开发。真的需要一个明星团队,在严格的流程支持下,才能玩转Jbuilder 2007。我两个条件都不符合,最重要的是老板嫌它太贵,只能放弃。