- 浏览: 153543 次
- 性别:
- 来自: 杭州
文章分类
最新评论
领域类:
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 967最权威的资料也就是官网了,如果英文好的话可访问下如下URL h ... -
产品部署
2010-11-22 09:46 716产品部署检查清单 1.确认grails-app/conf/Da ... -
使用URL映射(UrlMapping)改变主页
2010-11-22 09:22 1081在grails-app/conf/UrlMapping.gro ... -
grails插件
2010-11-22 09:19 7171.安装插件 命令行输入grails install-plug ... -
过滤器
2010-11-19 16:06 801从与单个控制器打交道更进一步,把安全应用到所有控制器。要完成这 ... -
beforeInterceptor
2010-11-19 15:42 734对于UserController进行控制,只允许管理员创建新用 ... -
创建认证标签库
2010-11-19 15:05 657大多数公共网站都在首部的右上角有一个不醒目的登录链接。下面是创 ... -
创建口令编解码器(Codec)
2010-11-19 14:44 1087编解码器(Codec)(编码器-解码器的缩写)是转换字符串的一 ... -
安装grails模板
2010-11-19 10:44 1135要想真正得到grails的内部工作零件,输入grails in ... -
创建自定义标签
2010-11-19 09:15 779既然Grails已经提供了大量<g:>标签,那么你 ... -
SiteMesh和自定义局部模板
2010-11-19 08:45 1579在index.gsp页面会发现<head>部分中的 ... -
内置数据库之迷
2010-11-17 18:00 1107对grails的内置数据库,刚开始接触会很奇怪,为什么每次启动 ... -
自定义验证器
2010-11-17 14:26 742在test/integration目录中,建一个集成测试类 代 ... -
编写测试类
2010-11-17 13:31 1029当创建领域类时,会同时生成测试类 在test/unit目录下可 ... -
增加约束
2010-11-17 11:05 587class Reg{ String name ... -
指定字段的顺序
2010-11-17 10:59 703class Reg{ String name ... -
领域类中的static mapping方法生命周期事件
2010-11-16 17:32 762static mapping方法不只是做些关闭时间自动生成,数 ... -
关于领域类中的特殊属性名
2010-11-16 17:21 748特殊属性名: class Reg { Date dat ... -
改变tomcat端口
2010-11-16 16:20 888运行grails工程时,有时会出现tomcat的8080端口被 ... -
grails中的事务处理
2010-09-27 14:33 1585domain类如下: package com.lt clas ...
相关推荐
SurveyKing(卷王) 是一个开源免费、功能强大、稳定的调查问卷系统,安装使用非常简单,支持多种数据库,内置 20 多种题型, 支持多人协作管理问卷。 Java是一种通用的,基于类的,面向对象的编程语言。它是用于...
SmallStruct的特性:SmallStruct是以MVC模式为核心在VCL基础上实现的一个数据库应用框架(仅适用于以数据库为中心的应用),并集成了一些常用的功能:1、在VCL的DataSet导向的数据访问模型上实现了更简易的数据访问...
SmallStruct是以MVC模式为核心在VCL基础上实现的一个数据库应用框架(仅适用于以数据库为中心的应用),并集成了一些常用的功能: 1、在VCL的DataSet导向的数据访问模型上实现了更简易的数据访问方式; 2、提供了...
(2)强大的数据处理功能,在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE(DBASE、FoxBASE的统称)数据库系统所无法实现的客户服务器(Cient/Server)结构和相应的数据库安全...
Oracle数据库中自带Java的简单应用.pdf
安信通数据库安全扫描系统能够查找主流数据库应用程序中的安全漏洞,通过创建和执行安全策略来保护数据库的安全。该系统易于安装和使用,可以独立于数据库运行,并且快速生成详细的通俗易懂的报告;能够扫描从口令...
ADODB 是一种兼容的各类数据库应用程序接口(API),支持的数据库种类非常地多, 例如:MySQL, PostgreSQL, Interbase, Informix, Oracle, MS SQL 7, Foxpro, Access, ADO, Sybase, DB2 以及一般的 ODBC 特点: 1、...
使用生成SQL脚本的功能,您可以像使用企业管理器一样为任意修改生成SQL脚本,通过工具内置的SQL执行工具,您可以将更改应用于多台开发机上以保持数据库的一致。 9、与自定义控件结合,使您在做表定义时即时预览到...
可以让用户在短短几分钟内快速搭建一个企业内部应用。该项目内置了一整套UI组件库,通过简单的拖拽操作即可完成应用的搭建。此外,ILLABuilder还接入了多种数据库和API,使数据调用变得更加简单方便。对于需要快速...
角色对应用程序授权(多个前台应用公用一个后台权限管理系统) 部门对用户授权 7. 提供字典表用于前台网站个性化配置 8. 完全响应式布局(支持电脑、平板、手机等所有主流设备) 9. 内置多数据源支持,配置简单...
奕乐数据库系统不仅是新型的数据库系统,也是一个快速的C/S架构的数据库应用系统的开发平台。 具有以下主要特点: 1. 服务器/客户端模式的数据库系统,可在其上开发各类应用系统(如:财务系统,库存销售系统...
奕乐数据库系统不仅是新型的数据库系统,也是一个快速的C/S架构的数据库应用系统的开发平台。 具有以下主要特点: 1. 服务器/客户端模式的数据库系统,可在其上开发各类应用系统(如:财务系统,库存销售系统...
BeetSql是一个全功能DAO工具,同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。 在开发效率上,无需注解,自动使用大量内置SQL,轻易完成增删...
拉腊卡 使用Laravel内置的超级简单计算器应用程序,使用MySql后端和tailwindcss进行样式设置。
SQLite是一个开源的嵌入式关系型数据库,它的体积小、使用简单、跨平台,非常适合应用于移动设备等资源受限的环境中。Android系统从一开始就内置了SQLite数据库,为应用程序提供了方便的数据持久化解决方案。 该Demo的...
Active Server Pages(简称:ASP,活动服务器页面)就是一个微软件早期编程环境,在其中,可以混合使用HTML、脚本语言以及部分组件来创建服务器端的互联网应用程序。 ASP.NET是微软力推的功能强大的编程环境,可以...