﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-伪科学家的记事本-随笔分类-Groovy</title><link>http://www.blogjava.net/fireflyk/category/49631.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 16 Sep 2011 14:58:47 GMT</lastBuildDate><pubDate>Fri, 16 Sep 2011 14:58:47 GMT</pubDate><ttl>60</ttl><item><title>[Grails]HelloWorld &amp; Simple CRUD Demo</title><link>http://www.blogjava.net/fireflyk/archive/2011/09/16/358829.html</link><dc:creator>柳桐</dc:creator><author>柳桐</author><pubDate>Fri, 16 Sep 2011 13:32:00 GMT</pubDate><guid>http://www.blogjava.net/fireflyk/archive/2011/09/16/358829.html</guid><wfw:comment>http://www.blogjava.net/fireflyk/comments/358829.html</wfw:comment><comments>http://www.blogjava.net/fireflyk/archive/2011/09/16/358829.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fireflyk/comments/commentRss/358829.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fireflyk/services/trackbacks/358829.html</trackback:ping><description><![CDATA[简单介绍，Grails是Groovy的Web框架，可以从名字看出它的特点Groovy+rails=Grails<br />今天在单位开讲前，同事笑称讲座题目是Girls，呵呵，可别看错了。闲言少叙，下面是例子。<br /><br />环境WindowsXP<br /><br /><strong>HelloWorld Demo</strong><br />1. 解压groovy1.8.1和grails1.3.7，分别设定GROOVY_HOME和GRAILS_HOME<br />2. f: 回车 mkdir grails-app 回车 cd grails-app<br />3. grails create-app 回车 racetrack<br />4. cd racetrack 回车 grails run-app<br />5. 访问 http://localhost:8080/racetrack/<br /><br /><strong>CRUD Demo</strong><br />1. 接着如上操作。在racetrack路径，<br />grails create-domain-class 回车 Race 回车 <br />grails create-domain-class 回车 Registration<br /><br />2. Race.groovy<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;Race&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date&nbsp;startDateTime<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;city<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;state<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Float&nbsp;distance<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Float&nbsp;cost<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;maxRunners&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">10000</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;hasMany&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[registration:Registration]<br />}</span></div><br />Registration.groovy<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;Registration&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;Race&nbsp;race<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date&nbsp;dataOfBirth<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;gender&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">F</span><span style="color: #000000; ">'</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;postalAddress<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;emailAddress<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date&nbsp;createdAt&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;Date()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;belongsTo&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;Race<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;optionals&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[</span><span style="color: #000000; ">"</span><span style="color: #000000; ">postalAddress</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">gender</span><span style="color: #000000; ">"</span><span style="color: #000000;">]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}</span></div><br />3. grails create-controller 回车 Race 回车 <br /><div>grails create-controller 回车 Registration<br /></div>Race.groovy<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;RaceController&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;scaffold&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; "> Race</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">}</span></div><br />Registraion.groovy<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;RegistrationController&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;scaffold&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;Registration<br />}</span></div><br />4. 运行<br />&nbsp;&nbsp; <img alt="" src="http://www.blogjava.net/images/blogjava_net/fireflyk/helloworld_demo.JPG" height="271" width="181" /><br /><br />这个CRUD的例子，不仅支持增删改查，还支持一对多的关联关系，之后会有详细的介绍。<img src ="http://www.blogjava.net/fireflyk/aggbug/358829.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fireflyk/" target="_blank">柳桐</a> 2011-09-16 21:32 <a href="http://www.blogjava.net/fireflyk/archive/2011/09/16/358829.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>