不知道为什么,今天的博客关闭了图片上传功能,不过大家可以到资源中下载。
1、 生成项目目录结构
选择“FileàNewàOther…àGrailsàNew Grails Project”:
填写工程名称和工程文件夹,Finish。
2、 建立“生产编号”的域模型
点工具栏上的 图标,在下拉列表中选择Grails,在弹出的对话框中输入命令create-domain-class ProductionNo:
点ok,grails命令立即运行,并可在Eclipse的Console视图中看到如下输出:
说明“生产编号”域模型建立完毕。
当然,打开ProductionNo类,我们发现这是一个空类,没有任何代码,我们会在后面完善它。
3、 建立“协作单位”域模型:
用前面同样的方法,运行grails命令:create-domain-class CooperationUnit, 建立“协作单位”域模型。
4、 生成“生产编号”域的脚手架代码(即控制器和视图):
运行grails命令:generate-all ProductionNo。即可生成“生产编号”域的脚手架。
5、 生成“协作单位”域的脚手架代码(即控制器和视图):
运行grails命令:generate-all CooperationUnit。即可生成“协作单位”域的脚手架。
由于“协作单位”域相对简单(只需要一个表来存储),下面我先修改它。
6、 修改“协作单位”域的类代码:
打开“grails-app/domain”下的CooperationUnit.groovy,编写如下代码:
class CooperationUnit {
String name //单位名称
String shortName //缩写
String shortNameEN //英文缩写
String remark //备注
static constraints = {//定义对各属性的约束
name(blank:false,unique:true)//单位名称:不能为空,各单位名称不能重复
shortName(blank:false,size:2..4,unique:true)//缩写:同上,长度2-4
shortNameEN(blank:false,size:2..2,unique:true)//英文缩写:长度2
}
}
其中,中文简称长度为4,即两个中文(1个中文需要2字节)。
7、 重新生成脚手架
由于脚手架代码是根据域类产生的,所以当我们对域类CooperationUnit进行修改后,需要重新生成它的脚手架。再次运行grails命令:generate-all CooperationUnit即可。
8、 修改数据库连接:
我们采用的是sql server数据库,在grails-app/conf下的DataSource.groovy文件应进行如下修改:
(1)首先是datasource闭包
dataSource {
pooled = true
driverClassName = "org.hsqldb.jdbcDriver"
username = "sa"
password = ""
}
(2)其次是development闭包:
development {
dataSource {
dbCreate = "update" // one of 'create', 'create-drop','update'
url =
"jdbc:sqlserver://localhost:1433;databaseName=IronwareProcess;selectMethod=cursor"
}
}
这里,我们把数据库指定为本机sqlserver上的IronwareProcess(这个数据库请自己手工建立,空数据库即可,不需要在其中建表)。同时,别忘了将sqlserver的JDBC驱动(sqljdbc.jar文件)放到项目的lib目录下。
(3)最后是test和production闭包:
跟development闭包完全一样
9、 运行程序:
第一次运行,首先必须要配置运行参数。点击 Run --> Open Run Dialog,选择Java Application 下的IronwareProcess项目,修改Arguments,在VM Arguments中最后一项下边加入:
-Dtools.jar=%JAVA_HOME%/lib/tools.jar
然后点击下边的Run按钮(第一次要这样运行,以后要运行时就可以直接使用工具栏上的 按钮了)。
运行后,我们可以到IronwareProcess数据库中查看,grails会自动为两个域建立了两张表:
现在,你可以在浏览器中输入http://localhost:8080/IronwareProcess来访问我们的程序了:
点击红框所示的链接,我们可以对域进行CRUD(增、查、改、删)操作,比如点击下图中的New CooperationUnit链接
在下一个页面表单中,填写必要的内容(备注-remark栏不是必填项,可以不用填):
对于其他字段,由于域类中定义的约束,使得输入时必须符合输入规则。
比如前三个字段都是必填内容,而且有两个字段还要求了字符长度必须是2,如英文简称,你会无法输入第3个以上的字符。
这里会有一个问题,因为1个中文在sqlserver中需要两字节存储,而grails在生成表时并不会自动考虑的中文英文的情况,所以它自动产生的表中,shorname这个字段长度仍然为2,而不是4(2个中文,即4个英文)。这样,当我们点击create后会得到一个错误,表示无法插入数据到数据库:
因此,我们需要先到数据库中把shortname的长度改为4,
然后点击create,我们可以增加一个协作单位(可以到数据库表中查看,确实已在表CooperationUnit中增加了新记录):
时页面会显示新增的记录:
下端有两个链接,edit链接可以修改记录,delete链接删除记录。点击上端的New cooperationUnit 链接,我们继续增加新的记录,直到把所有协作单位添加完,然后通过上面的CooperationUnit List链接查看所有的记录:
该页面提供分页显示,每页显示10条记录。通过点击记录的编号(id)可以进入记录详细显示页面。
下一节我们继续。