2012-07-06 3 views
5

Ich bin Neuling in Grails und ich habe Zweifel. Sagen wir, ich habe meine Datasource.groovy konfiguriert zu mysql Datenbank. Alles funktioniert gut und meine Grails App läuft.Wie bekomme ich Datenbankinstanz in Grails?

In der Steuerung, wenn ich die Datenbank hinzufügen/ändern möchte, die ich in DataSource.groovy eingestellt habe, wie kann ich das tun?

Wieder muss ich so etwas wie dies in jedem Controller tun:

def db = Sql.newInstance(
        'jdbc:mysql://*****', 
        'root', 
        '', 
        'com.mysql.jdbc.Driver' 
       ) 

um die db Instanz zu erhalten, die ich DataSource.groovy Datei verweisen?

Gibt es Best Practices, um dies zu tun?

Antwort

5

Sie sollten in der Lage sein, dies zu tun (ich würde empfehlen, dies in einem Dienst getan wird eher als ein Regler, wie es Ihre Controller sauberer machen und Sie einfacher Code zu folgen)

import groovy.sql.Sql 

class DataSourceAccessingService { 
    def datasource 

    def runSomeQuery(String sql) { 
    def sql = new Sql(datasource) 
    ... 
    } 
} 
+1

Oh sogar 'Datasource .groovy' kann injiziert werden! Das ist großartig über Grals! – batman

Verwandte Themen