使用Dojo和Grails快速实现数据的增删改查(CRUD)2014-02-20 ibm 占宇剑, 滕瑞,程守远选择 Grails 和 Dojo 的原因随着 web 的广泛应用,web application 的开发项 目越来越多,而大部分的 web 开发归根结底都是对数据库的增删改查。对于一张数据库表的 增删改查,采用基于 MVC(模型 - 视图 - 控制器)设计模式的开发往往需要 Domain class 、 Controller、4 个增删改查的页面、form 输入数据的校验等。这样就免不了大量类似功 能的复制粘贴修改。 如果你想从重复劳动中解放出来,Grails 是一个很好的选择。 使用 Grails 只需要写一个 domain class 就可以自动生成 CRUD 4 个页面和对应的 controller 方法来实现对数据库的增删改查,并实现服务器端的数据校验,从而大大地提高了开发效率 。类似的 web 快速开发框架还有 Rails、Django 和 TurboGears 等,与它们相比 Grails 有如下优势:Grails 是一套用于快速 Web 应用开发的开源 框架,它是由 15% 的 Groovy 代码和 85% 的 Java 代码写成,并建立在千锤百炼的经典框 架(Spring,Hibernate,Sitemesh)之上,从而为大家带来一套能实现超高生产力的一站式 框架。Grails 学习快速,使用容易,如果你熟悉 Hibernate、Spring、SiteMesh 和 JSP ,那么你一个小时之内就能学会 Grails。Grails 运行于 JVM 之上,生成的 war 包可以 部署在各种成熟的服务器 Tomcat, JBoss,Weblogic,Webspere 等。性能与 Rails2(100% Ruby) 相比要快很多。Grails 被 SpringSource 收购,有强大的技术支持。采用 Grails 的默认模板生成的 CRUD 页面有些简陋,实际项目中往往需要功能更加丰富,外观更 加漂亮,使用更加方便的控件。例如页面布局控件,Tab 控件,树,菜单,日历,编辑器, 进度条等等。现在有很多 JS 框架致力于 web UI, 例如 Dojo, Extjs, Jquery, YUI 等。我 们之所以选择 Dojo, 因为 Dojo 具有以下的优势: 组件丰富,有强 大的 UI(Dijit)。这样一来就可以减轻我们的大量沉重的工作,而且目前的开发非常活跃 。UI 外的功能也很强大,Full Stack 的框架,扩展了 DHTML 的能力,例如:支持与 浏览器 Back/Forward 按钮的集成。Dojo Offline,一个跨平台的离线存储 API。Chart 组件,可以方便地在浏览器端生成图表。基于 SVG/VML 的矢量图形库。Google Maps、Yahoo! Maps 组件,方便开发 Mashup 应用。Dojox Socket, 基于 WebSocket 或者 XHR 长连接的“服务器推”技术。Dojo 是一个很好的基础架构,具有面 向对象的设计,统一的命名空间,包管理机制(The Package System and Custom Builds) 可扩展性。Dojo 其实是一个组件模型,类似于 Spring,用来支持大规模的组件化开发。组 件模型的作用就是增强代码的重用,这对于提高开发效率是至关重要的。Dojo 的背后有 强大的支持 IBM、Oracle 等,这是非常重要的优势。Dojo 现在已经是众多开源框架的选择 ,包括:WebWork、Tapestry、Eclipse ATF、MyFaces。Dojo 的开发团队由 Alex Russell 领军,人数众多,力量非常强大。开源,使用 BSD 软件许可。快速搭建 CRUD 的 框架 (MVC)开发环境配置首先需要安装 JDK,并设置好 JAVA_HOME。本文使 用的是 JDK 1.6。Grails 官方网站下载并解压 grails.zip。本文使用的是 Grails1.3.7。创建一个 GRAILS_HOME 环境变量,将 $GRAILS_HOME/bin 添加到 PATH 中。习惯用 IDE 的可以选择 Intellij idea,Netbeans 和 Spring STS。本文以免费的 Netbeans7.0.1 为例,配置很简单,只需要在 Tools->Options->Miscellaneous- >Groovy 下设置 Grails Home,就可以进行 Grails 项目的开发了。(见图 1)图 1. Netbeans 中 Grails 的配置