目前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。我两个条件都不符合,最重要的是老板嫌它太贵,只能放弃。