Grails教程之--層次關係(Domain)

上一篇博客,我介紹了一下我對於Grails的認識,我覺得或許那篇博客裏面很多地方有些朋友不太認可,也希望大家能提出來,共同學習,共同進步。由於我在網上看到相關的書籍和技術博客比較少,所以決定將自己學習過程中的點點滴滴記錄下來。另外我覺得現在的很多技術博客都是會的人看起來覺得簡單;不會的人看起來雲裏霧裏,不知所云。所以我覺得將我探索的過程記錄下來,也希望各路大神能給予寶貴意見。

上一篇博客鏈接:Grails教程之--我的理解

下面言歸正傳,這篇博客我打算建立一個簡單的應用。首先通過GGTS(Grails的IDE工具)簡歷一個Grails項目。用過Eclipse的同學應該都會用的,不多贅述了。

第二步,配置好我們的數據庫連接。

第三部,開始進入主題。比如我們想建立一個對於文章發佈的功能,我們需要建立domain,也就是映射數據庫的類。和Hibernate立實體類一樣,我們建立第一個類Article。我打算給我們的文章類加入title(標題)、contents(內容)、author(作者),暫時先建立這些。

/**
 * 文章信息
 * @author Gaojiayuan
 *
 */
class Article {
	Date dateCreated
	Date 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頁面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章