Grails教程之--层次关系(Domain)
上一篇博客,我介绍了一下我对于Grails的认识,我觉得或许那篇博客里面很多地方有些朋友不太认可,也希望大家能提出来,共同学习,共同进步。由于我在网上看到相关的书籍和技术博客比较少,所以决定将自己学习过程中的点点滴滴记录下来。另外我觉得现在的很多技术博客都是会的人看起来觉得简单;不会的人看起来云里雾里,不知所云。所以我觉得将我探索的过程记录下来,也希望各路大神能给予宝贵意见。
上一篇博客链接:Grails教程之--我的理解
下面言归正传,这篇博客我打算建立一个简单的应用。首先通过GGTS(Grails的IDE工具)简历一个Grails项目。用过Eclipse的同学应该都会用的,不多赘述了。
第二步,配置好我们的数据库连接。
第三部,开始进入主题。比如我们想建立一个对于文章发布的功能,我们需要建立domain,也就是映射数据库的类。和Hibernate立实体类一样,我们建立第一个类Article。我打算给我们的文章类加入title(标题)、contents(内容)、author(作者),暂时先建立这些。
/** * 文章信息 * @author Gaojiayuan * */class Article {Date dateCreatedDate lastUpdated//文章标题String title//作者String author//内容CLOB contents static constraints = {contents nullable:true }static mapping = {id generator:'sequence',params:[sequence:'seq_article']}}
大家注意一下最开始的两个域,一个是dateCreated,另外一个是lastUpdate,如果我们定义了这两个变量,那么Grails就会在创建记录和更新记录的时候,自动为我们更新这两个字段。这就是Grails方便的一面。建立好实体类后,我们不需要手动的增加数据表,在我们编译的时候,Grails会按照我们的数据库连接为我们自动生成数据表。这两个字段我们也可以手动关闭他们,可以在mapping中写上autoTimeStamp false。但是我觉得如果不想让他们自动生成,干脆不要写,或者把你的字段名换一个。
接下来再看定义的静态constraints 域,字段名 nullable表示是否可以为空,就是这个格式,默认字段不能为空,所以我们只需要给可以为null的字段加上nullable:true。
继续往下看,我们给这个类的ID一个sequence,这个还是需要手动在数据库中建立一下的。
这样,domain中的实体类就已经建立好了。下面一篇我们来写GSP页面。