`
znsan
  • 浏览: 796 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Groovy on Grails 初探

阅读更多

此文仅为本人初次学习和实践G&G的心得体会以及开发经验的记录,旨在将我的感受保留下来以备未来查阅。欢迎大家指正和补充:)

一、Domain Class

1. 对于一个领域类对应一个表的情况最好解决,每一个字段对应一列,是最爽的形式

2. 每个领域类最好重写toString()方法,目的在于关联的显示时展现有意义的文字而不是简单的ID

3. static constraints = {}有两个作用,一是规定了字段在页面中的顺序;另外就是数据约束在这里定义。PS:一定要保证拼写正确,我就因为拼写错误导致运行不成功,郁闷了很久才找到错误原因。

4. 字段的定义一定要保证其不是数据库中的关键字!!这点很重要,我已经两次在这方面出错了。一次是desc,一次是order

5. 在数据验证中,blank是针对String类型的不为空,而其他类型不为空则要用nullable,如Integer。常用的还有maxSize,也是针对String类型的长度。如无必需最好不要大于255,若大于则数据库中类型不是Varchar了。

6. 在一对多关系中,一方要有hasMany闭包,这样可以在内容显示时包括多方的链接;多方中belongsTo是可选的,如果加上则会被级联删除。

7. static mapping 闭包可以修改默认的字段与表的对应方式,尤其在处理遗留数据库时有用

 

二、数据库访问

1. 数据源配置:在grails-app/conf/DataSource.groovy里配置,dbCreate 的值在不同的环境下会产生不同的行为。它是底层的 hibernate.hbm2ddl.auto 设置的别名,负责指定 Hibernate 在幕后如何管理表。将 dbCreate 设为 create-drop create ,那么 Hibernate 会在需要的时候创建新表和修改现有表,但是重新启动之间的所有记录都会被删除。production 模式的默认值 — update — 会在重新启动之间保持所有数据,也会在需要的时候创建或修改表。 ,就是告诉在启动的时候创建表,在关闭的时候删除表。如果将值改为

2. 注意要把访问数据的jar包拷贝到lib目录中。

3. 可添加自定义环境,如beta,同development等设置,在启动程序时grails -Dgrails.env=beta run-app

4. 数据库模式还是要先建立好的,Grails只能修改表而不是数据库

5. 一般的run-app使用development数据配置,打成war包后使用production配置。要保证lib中有数据访问驱动

6. 数据库连接字符串要写对格式,如mysql的:jdbc:mysql://localhost:3306/trip


三、页面修改

1. 页面跟普通JSP页面没有太多区别,一般内置标签<g:**>无需导入就可直接使用,自己编写的Tag只要按照规约放在指定的目录下即可直接使用。

2. 最爽的一点是页面修改无需重启服务器,因而修改后直接刷新就能看到效果

3. 一般生成的页面上都有ID这个字段,最好都删去避免出错

 

四、控制器及业务逻辑

1. 有两种默认控制器执行,一是转到index闭包;另外就是直接指定

2. 不是所有闭包都要有对应的视图,可以转到任何视图,render是渲染的意思,redirect是重定向这两种方式都可以用flash.message来显示提示信息

3. 可以直接使用Java语言中的类库或Groovy语言。在访问数据库方面还是Groovy比较方便,例子如下:

    首先要import groovy.sql.Sql

      def db = Sql.newInstance(DB,ID,PASSWORD,DRIVER)
      def result = db.execute("DELETE FROM member WHERE id=${m.homeId}")

4. 保持Domain时hasErrors()只是检查对象是否构造无误,而save()才是真正进行约束检查


五、其他

1. 所有文件最好都用utf-8格式保存,这样能对中文友好支持!

2. i18n文件已经有多个语言版本,根据本机配置会自动选择,在中国就使用messages_zh_CN.properties

3. 如User中的username的非空提示就应为:User.username.blank = 用户名不能为空。无需自己进行本地转化,启动时系统会自动为你转换。具体参考官方文档


version 1.1

未完待续...

 

 

2
1
分享到:
评论
2 楼 sword721 2008-07-04  
grails很好
1 楼 rmn190 2008-07-04  
关注....

相关推荐

    Groovy和Grails配置方法

    ### Groovy和Grails配置方法 #### 一、Groovy与Grails简介 Groovy是一种强大的面向对象编程语言,它运行在Java平台上,并且能够直接与Java代码进行交互。Groovy支持函数式编程特性,拥有丰富的语法糖以及简洁的...

    [Groovy] Groovy, Grails, Griffon 入门教程 (英文版)

    [Apress] Groovy, Grails, Griffon 入门教程 (英文版) [Apress] Beginning Groovy, Grails and Griffon (E-Book) ☆ 出版信息:☆ [作者信息] Vishal Layka, Christopher M. Judd, Joseph Faisal Nusairat, Jim ...

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part1

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part1 共两个压缩包,解压后将扩展名.zip.bak改为.zip再次解压。

    Groovy&Grails准备,收集的Groovy与Grails的书籍

    Groovy和Grails是两个密切相关的开源技术,主要用于构建现代、高效的Java平台应用程序。Groovy是一种动态、灵活的编程语言,它与Java高度兼容,但语法更为简洁,提供了更多的灵活性。而Grails则是一个基于Groovy的...

    begining groovy and grails

    《初学者指南:Groovy与Grails》一书由Christopher M. Judd、Joseph Faisal Nusairat和James Shingler共同编写,是专为Java开发者设计的实用教程,旨在帮助他们掌握敏捷Web开发所需的Groovy和Grails技能。本书从入门...

    Beginning Groovy and Grails, From Novice to Professional

    ### 关于《从新手到专家:Groovy与Grails入门》 #### 一、书籍概述 本书《Beginning Groovy and Grails, From Novice to Professional》由Christopher M. Judd、Joseph Faisal Nusairat 和 James Shingler共同编写...

    Groovy and Grails Recipes.pdf

    - **领域模型**:代表数据库表的实体类,使用GORM(Groovy on Rails ORM)进行管理。 - **控制器**:处理HTTP请求并将数据传递给视图层。 - **视图**:使用GSP(Groovy Server Pages)或FreeMarker等模板引擎来...

    eclipse插件grails(groovy)

    Eclipse 插件 Grails(Groovy)是一个强大的开发工具,它使得在Eclipse环境中进行Groovy和Grails应用的开发变得更为便捷。Groovy是一种动态、面向对象的编程语言,而Grails则是一个基于Groovy的开源Web应用框架,...

    Groovy&Grails - 指南.ppt

    Groovy 和 Grails 与 Ruby on Rails 一样,都追求开发效率和简洁性,但它们建立在不同的语言基础之上。Ruby on Rails 是基于 Ruby 语言,而 Grails 则是基于 Groovy。虽然 Grails 受到 Rails 的启发,但它采用了 ...

    Agile Development with Groovy and Grails.pdf

    ### 敏捷开发与Groovy及Grails技术详解 #### 一、敏捷开发与Groovy及Grails概览 在《Agile Development with Groovy and Grails》这本著作中,作者Christopher M. Judd(Judd Solutions, LLC 的总裁兼顾问)详细...

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part2

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part2 共两个包,解压后需要将扩展名.zip.bak改名为.zip重新解压。 http://dist.springsource.com/release/STS/3.8.1.RELEASE/dist/ e4.6/spring-tool-...

    Groovy / Grails F4

    Groovy / Grails F4 The Best Web Server

    Groovy / Grails F2

    Groovy / Grails F2 The Best Web Server

    Groovy / Grails F3

    Groovy / Grails F3 The Best Web Server

    [Groovy] Groovy & Grails 新手进阶教程 (英文版)

    [Apress] Groovy & Grails 新手进阶教程 (英文版) [Apress] Beginning Groovy and Grails From Novice to Professional (E-Book) ☆ 出版信息:☆ [作者信息] Christopher M. Judd, Joseph Faisal Nusairat, ...

    groovy and grails ppt

    Groovy和Grails是两个密切相关的Java平台上的开发工具,它们在构建现代Web应用程序中扮演着重要角色。Groovy是一种敏捷、动态的语言,它旨在减少Java的样板代码,同时提供了可选的动态类型、闭包、领域特定语言...

    grails_nodejsApp:带有 nodejs 和 groovy on grails 的 Gumball Machine 应用程序

    《构建集成Node.js与Groovy on Grails的Gumball Machine应用》 在IT领域,跨平台、高效能的应用开发是开发者不断追求的目标。在这个背景下,“grails_nodejsApp”项目是一个独特的尝试,它结合了Groovy on Grails和...

    Groovy/Grails F1

    Groovy Grails , The best web server.

Global site tag (gtag.js) - Google Analytics