在groovy控制器/服务中使用非默认dataSource

时间:2011-11-17 01:29:55

标签: grails groovy datasource

我在dataSource.groovy中定义了2个数据源,其中一个是默认值

dataSource {
 all variables
}

另一个是readonly

dataSource_readonly {
 all variables
}

最初我曾经在我的控制器中使用默认数据源:

class myController {
javax.sql.DataSource dataSource
def sql = new Sql(dataSource)
.............

所以现在使用其他数据源我需要做这样的事情吗?

class myController {
javax.sql.DataSource dataSource_readonly
def sql = new Sql(dataSource_readonly)
.............

2 个答案:

答案 0 :(得分:0)

你有没有尝试过类似的东西:

groovy.sql.Sql connection = Sql.newInstance(ConfigurationHolder.config.dataSource.url,
                ConfigurationHolder.config.dataSource.username,
                ConfigurationHolder.config.dataSource.password,
                ConfigurationHolder.config.dataSource.driverClassName)
        connection.execute("UPDATE ......")

答案 1 :(得分:0)

是的,就像使用默认数据源一样,您可以使用自定义数据源名称在控制器/服务中声明属性,grails将使用自定义数据源bean自动初始化您的控制器/服务:

class MyController {
    def dataSource_readonly

    def myAction = {
        def sql = new groovy.sql.Sql(dataSource_readonly)
    }
}