2012-07-06 11 views
5

Jestem nowicjuszem w Grails i mam wątpliwości. Powiedzmy, że mam bazę danych Datasource.groovy skonfigurowaną na mysql. Wszystko działa dobrze, a moja grails działa.Jak uzyskać instancję bazy danych w grails?

W kontrolerze, jeśli chcę dodać/zmodyfikować bazę danych, którą ustawiłem w DataSource.groovy, w jaki sposób mogę to zrobić?

Znowu muszę zrobić coś takiego w każdym kontrolerze:

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

w celu uzyskania instancji DB, które wskazuję DataSource.groovy pliku?

Czy są jakieś najlepsze praktyki, aby to zrobić?

Odpowiedz

5

Powinieneś być w stanie to zrobić (polecam ten odbywa się w usłudze, a nie kontrolera, jak to zrobi kontrolerów czystsze i kodować łatwiejsze do naśladowania)

import groovy.sql.Sql 

class DataSourceAccessingService { 
    def datasource 

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

Oh nawet 'DataSource .groovy' może zostać wstrzyknięty! To świetnie na temat grails! – batman

Powiązane problemy