0

我想從另一個項目中已經存在的數據庫中提取數據到我的Grails項目中並列出數據。我應該爲現有的數據庫創建一個域控制器嗎?我知道如何創建域控制器並使用數據遷移插件來更新數據庫,但我讀過的書中沒有任何關於如何從現有數據庫設置和讀取的信息。我爲我的數據庫使用MySQL。從現有數據庫中讀取Grails

+1

你不覺得張貼現有的表架構可以幫助? –

+0

我還沒有開始。不管架構如何,我試圖從另一個數據庫訪問一個表。說devDb.tblUsers – codeBarer

+0

「來自另一個項目的現有數據庫」的含義是什麼?這裏的主要問題在於您是否擁有可供您訪問的基礎表的域類? – dmahapatro

回答

2

使用逆向工程插件從現有的數據庫中創建域類:http://grails.org/plugin/db-reverse-engineer

+0

謝謝伯特,這真的會幫助我。我正在評估我們公司的Grails作爲PHP開發的可能替代品。我使用您的書Grails編程作爲參考。你有推薦的其他書嗎?另外,是不是可以從數據庫訪問數據沒有一個域類,如在PHP的mysqli? – codeBarer

3

按我的理解,請執行以下操作:

假設你有一個現有的DB「TESTDB」與表「 domain_model「,它有列」column_a「,」column_b「和」column_c「。

在聖盃,創建一個域類,並添加以下在映射塊:

static mapping = { 
    table "domain_model" 
      version false 
      id column: "primary_key_column" 
      columnA column: "column_a" 
      columnB column: "column_b" 
      columnC column: "column_c" 
} 
    String id 
    String columnA 
    Date columnB 
    Integer columnC 

和在DataSource.groovy中,保持dbCreate的屬性被設置爲「更新」。

dbCreate =「update」

希望這有助於!

此外,請確保將「id」和「version」列添加到現有表中,其中「id」列是自動增加的,並且可以將「版本」列作爲「1」添加到所有記錄。

+0

謝謝。另外一個問題,Grails可以讀取xml作爲數據源嗎? – codeBarer

1

@codeBarer通過將xml文件放在grails-app/conf中,您可以在Grails中使用xml作爲數據源。您可以在BootStrap.groovy中引用此文件: class.getResource(「yourData.xml」)。

1

DEF defaultDataFileStream = this.class.getResourceAsStream( 「defaultData.xml」) DEF ALLDATA =新的XmlSlurper()。解析(defaultDataFileStream)

BootStrap.groovy中嘗試此。您將把xml文件放在grails-app/conf中。