- 浏览: 159018 次
- 性别:
- 来自: 杭州
文章分类
最新评论
领域类:
1.Race.groovy
2.Registration.groovy
3.Runner.groovy
控制器:
1.RaceController.groovy
2.RegistrationController.groovy
3.RunnerController.groovy
因为是内置数据库,所以每次重启服务器时,数据就丢失,这是grails内部机制,可以用以下办法在每次服务器启动时保存初始数据到内置数据库:
在grails-app/conf/BootStrap.groovy
1.Race.groovy
package com.rt class Race { String name Date startDate String city String state BigDecimal distance BigDecimal cost Integer maxRunners=100000 static hasMany=[registrations:Registration] static constraints = { name(blank:false,maxSize:50) startDate(validator:{return(it>new Date())}) city() state(inList:["GA","NC","SC","VA"]) distance(min:0.0) cost(min:0.0,max:100.0) maxRunners(min:0,max:1000000) } BigDecimal inMiles(){ return distance*0.6214 } @Override public String toString() { return "${name},${startDate.format('yyyy/MM/dd')}" } }
2.Registration.groovy
package com.rt class Registration { Boolean paid Date dateCreated static belongsTo = [race:Race,runner:Runner] static constraints = { race() runner() paid() dateCreated() } @Override public String toString() { return "${race}:${runner}" } }
3.Runner.groovy
package com.rt import java.util.Date; class Runner { String firstName String lastName Date dateOfBirth String gender String address String city String state String zipcode String email static hasMany=[registrations:Registration] static constraints = { firstName(blank:false) lastName(blank:false) dateOfBirth() gender(inList:['男','女']) address() city() state() zipcode() email(email:true) } @Override public String toString() { return "${firstName},${lastName}(${email}" } }
控制器:
1.RaceController.groovy
package com.rt class RaceController { def scaffold=Race // def index = { // render "hello world" // } }
2.RegistrationController.groovy
package com.rt class RegistrationController { def scaffold=true // def index = { } }
3.RunnerController.groovy
package com.rt class RunnerController { def scaffold=true }
因为是内置数据库,所以每次重启服务器时,数据就丢失,这是grails内部机制,可以用以下办法在每次服务器启动时保存初始数据到内置数据库:
在grails-app/conf/BootStrap.groovy
import com.rt.Race import com.rt.Registration import com.rt.Runner import grails.util.GrailsUtil; class BootStrap { def init = { servletContext -> switch(GrailsUtil.environment){ case "development": def jane=new Runner( firstName:'三', lastName:'张', dateOfBirth:(new Date()-365*30), gender:'男', address:'地址', city:'hz', state:'NC', zipcode:'123456', email:'jane@163.com' ) jane.save() jane.errors.each { println it } def trot=new Race( name:'500长跑', startDate:(new Date()+90), city:'HZ', state:'NC', distance:500, cost:20.0, maxRunners:350 ) trot.save() if(trot.hasErrors()){ println trot.errors } def reg=new Registration( paid:false, runner:jane, race:trot ) reg.save() reg.errors.each { println it } break } } def destroy = { } }
发表评论
-
一对多或多对多时多的一方排序问题
2010-12-08 16:35 996最权威的资料也就是官网了,如果英文好的话可访问下如下URL h ... -
产品部署
2010-11-22 09:46 743产品部署检查清单 1.确认grails-app/conf/Da ... -
使用URL映射(UrlMapping)改变主页
2010-11-22 09:22 1115在grails-app/conf/UrlMapping.gro ... -
grails插件
2010-11-22 09:19 7611.安装插件 命令行输入grails install-plug ... -
过滤器
2010-11-19 16:06 838从与单个控制器打交道更进一步,把安全应用到所有控制器。要完成这 ... -
beforeInterceptor
2010-11-19 15:42 769对于UserController进行控制,只允许管理员创建新用 ... -
创建认证标签库
2010-11-19 15:05 679大多数公共网站都在首部的右上角有一个不醒目的登录链接。下面是创 ... -
创建口令编解码器(Codec)
2010-11-19 14:44 1111编解码器(Codec)(编码器-解码器的缩写)是转换字符串的一 ... -
安装grails模板
2010-11-19 10:44 1160要想真正得到grails的内部工作零件,输入grails in ... -
创建自定义标签
2010-11-19 09:15 806既然Grails已经提供了大量<g:>标签,那么你 ... -
SiteMesh和自定义局部模板
2010-11-19 08:45 1598在index.gsp页面会发现<head>部分中的 ... -
内置数据库之迷
2010-11-17 18:00 1144对grails的内置数据库,刚开始接触会很奇怪,为什么每次启动 ... -
自定义验证器
2010-11-17 14:26 766在test/integration目录中,建一个集成测试类 代 ... -
编写测试类
2010-11-17 13:31 1061当创建领域类时,会同时生成测试类 在test/unit目录下可 ... -
增加约束
2010-11-17 11:05 637class Reg{ String name ... -
指定字段的顺序
2010-11-17 10:59 754class Reg{ String name ... -
领域类中的static mapping方法生命周期事件
2010-11-16 17:32 787static mapping方法不只是做些关闭时间自动生成,数 ... -
关于领域类中的特殊属性名
2010-11-16 17:21 775特殊属性名: class Reg { Date dat ... -
改变tomcat端口
2010-11-16 16:20 917运行grails工程时,有时会出现tomcat的8080端口被 ... -
grails中的事务处理
2010-09-27 14:33 1616domain类如下: package com.lt clas ...
相关推荐
在Android系统中,数据库是一种重要的数据存储方式,尤其对于开发者来说,理解系统内置数据库的字段描述...因此,深入研究和理解Android系统内置数据库的字段描述对于任何Android开发者来说都是一个基本且重要的技能。
在本文中,我们将深入探讨如何使用C#编程语言和Visual Studio 2008来创建一个基于WinForms的简单通讯录应用,同时结合Access数据库进行数据管理。由于开发者提到对存储过程不够熟悉,我们将主要关注如何通过ADO.NET...
11. **部署**:由于使用了内置数据库,部署过程相对简单,只需将整个应用程序文件夹复制到目标服务器的IIS(Internet Information Services)中即可运行。 通过这个源代码,初学者可以学习到如何在ASP.NET环境中...
在Java开发环境中,有时我们需要一个轻量级的数据库来快速测试代码或进行原型设计,而JDK 1.7引入的内置数据库Apache Derby就是这样一种工具。这篇教程将带你入门使用Derby,通过两个示例程序——`TestDerbyBasic....
同时,还需要安装一个数据库管理系统,如SQL Server或SQLite,它们为应用程序提供数据存储服务。 二、连接数据库 C#通过ADO.NET库与数据库进行交互。首先,我们需要创建一个`SqlConnection`对象来表示数据库连接。...
SurveyKing(卷王) 是一个开源免费、功能强大、稳定的调查问卷系统,安装使用非常简单,支持多种数据库,内置 20 多种题型, 支持多人协作管理问卷。 Java是一种通用的,基于类的,面向对象的编程语言。它是用于...
本实验将指导你如何结合这些知识,构建一个简单的Web应用,体验JDBC和JSP的强大力量。通过实际动手,你会更深入地理解这些技术,为后续的Web开发打下坚实的基础。在实践中遇到问题,别忘了查阅相关文档和资料,不断...
本篇文章将深入探讨数据库连接池的概念、工作原理以及一个简单而实用的数据库连接池工程。 首先,理解数据库连接池的基本概念。数据库连接池是在应用服务器启动时创建的一组预定义的数据库连接,这些连接在多个用户...
第十二章“视图”介绍了视图的概念,它是虚拟表,来源于一个或多个表的查询结果。视图可以简化复杂的查询,提供安全访问控制,以及隐藏基础数据的细节。 7. 实验指导书和考试卷 “课程实验指导书.doc”可能提供了...
在Android应用开发中,有时需要预先在应用内部包含一个SQLite数据库,以便在用户首次使用应用时可以直接使用。这个过程通常涉及到将预建的数据库文件从应用的assets目录复制到设备的特定位置,如SD卡或者应用的数据...
2. **错误处理**:为了确保程序的健壮性,类可能还包括异常处理和错误报告机制,如使用`try-catch`结构,或者定义一个`error()`方法来捕获和处理连接失败或其他数据库错误。 3. **预处理语句**:为了防止SQL注入...
在这个“易语言源码一个简单的数据库分页例程”压缩包中,我们可以期待找到一个使用易语言实现的数据库分页功能的示例代码。数据库分页在许多应用程序中都是至关重要的,特别是在处理大量数据时,它能有效地提高用户...
- 数据库的安全性是另一个重要方面,包括用户权限管理、数据加密和防止SQL注入攻击等。C++Builder允许开发者在应用程序级别和数据库级别实施安全策略。 总之,C++Builder提供了全面的工具和技术,使开发者能够高效...
NetBeans是一个开源的、跨平台的IDE,它支持多种编程语言,如Java、PHP、HTML5等,同时也提供了强大的可视化设计工具。对于Web开发,NetBeans提供了丰富的功能,包括代码编辑、调试、版本控制以及项目管理等。其可视...
《学生成绩管理系统——数据库应用》是一个典型的网络数据库应用程序,主要使用了VB.NET作为编程语言,结合SQL SERVER 2000作为后端数据库进行开发。这个系统是学生的一个实践项目,展示了如何将编程技术与数据库...
为了更直观地展示PB如何调用Oracle数据库接口,下面提供一个简单的示例: 1. **定义外部函数:** - 定义一个标准的类(例如`Transaction`),并在其中声明一个外部函数(如`RPCFUNC`)。 - 使用`...
根据提供的部分内容,我们可以详细地分析如何使用Delphi创建一个简单的基于单表的数据库应用程序。 ##### 1. 选择相关组件 - **TDataSounce组件**:用于连接数据源。 - **TTable组件**:负责与具体的数据库表交互...
Derby是一个嵌入式数据库,这意味着它可以直接在应用程序中运行,无需额外的服务器进程。这对于小型应用或者测试环境来说非常理想,因为它减少了部署的复杂性。Derby支持SQL标准,包括SQL92和部分SQL:2003,使得与...
为了解决这一问题,"Access MDB数据库简易编辑器"应运而生,它提供了一个直观、便捷的方式来浏览、编辑和查询MDB文件,无需依赖Access本身。 这个免费的mdb文件浏览器和编辑器,具备了几个核心功能,使用户能够轻松...