在groovy控制器/服务中使用非默认数据源

发布于 2024-12-15 22:34:27 字数 510 浏览 1 评论 0原文

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

dataSource {
 all variables
}

另一个是只读的

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)
.............

I have 2 datasources defined in my dataSource.groovy one is default

dataSource {
 all variables
}

other one is readonly

dataSource_readonly {
 all variables
}

Initially I used to use default datasource in my controller so:

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

so now to use the other datasource do I need to do something like this ?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一生独一 2024-12-22 22:34:27

你有没有尝试过类似的事情:

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 ......")

Have you tried something like that:

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 ......")
冬天旳寂寞 2024-12-22 22:34:27

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

class MyController {
    def dataSource_readonly

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

Yes, just like you can with the default datasource, you can declare a property in your controller/service with the custom datasource name, and grails will automatically initialize your controller/service with the custom datasource bean:

class MyController {
    def dataSource_readonly

    def myAction = {
        def sql = new groovy.sql.Sql(dataSource_readonly)
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文