一步一步学grails:1 开始

 不知道为什么,今天的博客关闭了图片上传功能,不过大家可以到资源中下载。

1、  生成项目目录结构

选择“FileàNewàOther…àGrailsàNew Grails Project:

 

 

填写工程名称和工程文件夹,Finish

2、  建立“生产编号”的域模型

点工具栏上的 图标,在下拉列表中选择Grails,在弹出的对话框中输入命令create-domain-class ProductionNo:

 

okgrails命令立即运行,并可在EclipseConsole视图中看到如下输出:

 

说明“生产编号”域模型建立完毕。

当然,打开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(这个数据库请自己手工建立,空数据库即可,不需要在其中建表)。同时,别忘了将sqlserverJDBC驱动(sqljdbc.jar文件)放到项目的lib目录下。

3)最后是testproduction闭包:

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,而不是42个中文,即4个英文)。这样,当我们点击create后会得到一个错误,表示无法插入数据到数据库:

 

因此,我们需要先到数据库中把shortname的长度改为4

 

然后点击create,我们可以增加一个协作单位(可以到数据库表中查看,确实已在表CooperationUnit中增加了新记录):

 

时页面会显示新增的记录:

 

下端有两个链接,edit链接可以修改记录,delete链接删除记录。点击上端的New cooperationUnit 链接,我们继续增加新的记录,直到把所有协作单位添加完,然后通过上面的CooperationUnit List链接查看所有的记录:

 

该页面提供分页显示,每页显示10条记录。通过点击记录的编号(id)可以进入记录详细显示页面。

下一节我们继续。

原文地址:https://www.cnblogs.com/encounter/p/2188557.html