2012-07-06 14 views
5

Soy un novato en Grails y tengo una duda. Digamos que tengo mi Datasource.groovy configurado para la base de datos mysql. Todo funciona bien y mi aplicación Grails se está ejecutando.¿Cómo obtengo la instancia de base de datos en griales?

En el controlador, si deseo agregar/modificar la base de datos que he configurado en DataSource.groovy ¿cómo puedo hacer eso?

Una vez más tengo que hacer algo como esto en cada controlador:

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

con el fin de obtener el caso del DB que señalo DataSource.groovy archivo?

¿Existen mejores prácticas para hacerlo?

Respuesta

5

Usted debe ser capaz de hacer esto (yo recomendaría esto se hace en un servicio en lugar de un controlador, ya que hará que los controladores más limpio y un mejor código más fácil de seguir)

import groovy.sql.Sql 

class DataSourceAccessingService { 
    def datasource 

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

Oh incluso 'DataSource .groovy' se puede inyectar! ¡Eso es genial sobre los griales! – batman

Cuestiones relacionadas