1.创建项目:create-app ToysStore
2.切换到项目目录:cd ToysStore
3.创建领域类:create-domain-class toy
4.到domain目录下面找到Toy.groovy文件,修改为下面内容:
class Toy {
int id
String toyName
String unitPrice
}5.创建控制器:create-controller toy
6.到controller目录下面找到ToyController.groovy文件,修改为下面内容:
class ToyController {
//动态运行时产生相应工件
def scaffold = Toy
}7.run-app
8.打开IE/FireFox,浏览:http://localhost:8080/ToysStore就可以测试结果了!!!
9.静态产生工件:
generate-controller:产生控制器
generate-views:产生视图
generate-all:产生控制器与视图
这里使用:generate-all toy执行后在views中产生了toy目录,toy下面产生了create.gsp/edit.gsp/list.gsp/show.gsp文件
为什么没有delete.gsp?实际上是因为删除不需要用户输入相应数据,所以不需要提供表单接受输入。10.run-app
一样的可以完成CRUD的测试!11.给领域类加入约束:
class Toy {
int id
String toyName
String unitPrice
static constraints={
unitPrice()
toyName()
}
}
注意:constraints后面是=,表示constraints是一个闭包!12.重新执行:generate-all toy(经常忘记!如果使用脚手架scaffold则不需要重新执行!)
13.测试发现:unitPrice列在前,toyName在unitPrice后面
实际上是依据constraints的顺序排列!还有一个id列是表的主键!14.修改ToyController.groovy的list闭包
把params.max = 10改为params.max = 5,表示每页显示5条记录。15.修改ToysStore/grails-app/conf下面的BootStrap.groovy文件:
class BootStrap {
def init = { servletContext ->
println 'ToysStore Start......'
//println servletContext
}
def destroy = {
}
} 16.重启会发现输出:ToysStore Start......
17.配置Eclipse外部工具:
run-->External Tools-->Open External Tools Dialog
设置Location: C:/grails-1.0.2/bin/console.bat
设置Work Directory: C:/grails-1.0.2/ToysStore(换成你的项目路径)这样就可以在Eclipse环境内部执行create-domain-class等命令了!
18.加入service:
(1)create-service toy
会在grails-app/services下面产生ToyService.groovy文件
并且在其中加入服务方法或闭包:
def sayHello() {
println 'Hello service'
}(2)在ToyController.groovy中调度service:
def serviceTest={
def service=new ToyService()
service.sayHello()
}(3)在grails-app/views/toy下面创建serviceTest.gsp或serviceTest.jsp文件作为serviceTest闭包的结果视图!
(4)http://localhost:8080/ToysStore/toy/serviceTest访问toy控制器中的serviceTest闭包!
19.导入Grails项目到Eclipse后的环境配置:
(1)需要到 我的电脑--》属性--》高级--》环境变量 配置GRAILS_HOME为C:/grails-1.0.2/grails (到安装目录下grails为止)。
(2)在Eclispe中 项目属性--》构建路径--》添加变量--》加入GRAILS_HOME变量。
(3)运行时配置参数-Dbase.dir=${project_loc}会报错,去掉它就可以了。
(4)Error starting Sun's native2ascii:把jdk下的tools.jar加到classpath中。20.数据库换成MySQL:
(1)打开文件grails-app/conf/DataSource.groovy,修改driverClassName,username,password,url:dataSource {
pooled = false
driverClassName = "com.mysql.jdbc.Driver"
username = "root"
password = "lxt008"
}
hibernate {
cache.use_second_level_cache=true
cache.use_query_cache=true
cache.provider_class='org.hibernate.cache.EhCacheProvider'
}
// environment specific settings
environments {
development {
dataSource {
//create-drop:重启服务器前会删除原Schema,重启服务器后重新创建Schema。
//create:不会删除原Schema,但是数据不会保留。
//update:不会删除原Schema和数据。只是Schema有变化时更新Schema罢了。
dbCreate = "create-drop" // one of 'create', 'create-drop','update'
url = "jdbc:mysql://localhost/toysstore?useUnicode=true&characterEncoding=utf-8"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:hsqldb:mem:testDb"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:hsqldb:file:prodDb;shutdown=true"
}
}
}(2)把MySQL的JDBC驱动加入项目构建路径。
grails3 使用redis grails入门指南
转载文章标签 grails3 使用redis grails constraints schema hsqldb 文章分类 Redis 数据库
-
Grails 初步
Grails学习笔记。
Grails -
svn启动时能指定多个仓库吗
SVN Checkout Single File(SVN签出,更新单个文件) Context(上下文): 技术总在更新。VSS,CVS,SVN,代码管理工具也在不断升级;虽然不能说下一代一定比上一代更好(“好”的定义很难。),或更高效,更适合工作;但产品总在开发; 最初
svn启动时能指定多个仓库吗 svn file tortoisesvn cvs