从groovy中的dataSource获取连接对象

发布于 2024-12-14 16:41:47 字数 431 浏览 3 评论 0原文

我们的应用程序定义了 Datasource.groovy。 我在这样的控制器中使用它,

import  javax.sql.DataSource
class xxx {
 javax.sql.DataSource dataSource

 def myappsql = new Sql(dataSource)
 myappsql.row(querystring) .....

}

我需要从数据源获取连接对象,这是否可以直接像这样:

 Connection conn = myappsql.getConnection()

既然这给了我错误,它是否必须是 groovy.sql.Sql 拨打此电话?

我试图避免使用用户、密码和 url 字符串从头开始创建连接对象,而是重用数据源中声明的连接对象。

Our Application has a Datasource.groovy defined.
I am using it in a controller like this

import  javax.sql.DataSource
class xxx {
 javax.sql.DataSource dataSource

 def myappsql = new Sql(dataSource)
 myappsql.row(querystring) .....

}

I need to get connection object from the datasource, is this possible directly like this :

 Connection conn = myappsql.getConnection()

Since this is giving me error, does it have to be a groovy.sql.Sql to do this call?

I am trying to avoid creating a connection object from scratch, with user, password and url string and instead reuse the one declared in datasource.

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

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

发布评论

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

评论(2

末が日狂欢 2024-12-21 16:41:57

您应该能够执行以下操作:

conn = myappsql.datasource.connection

我相信您在 使用数据源构造 Sql 对象

You should be able to do:

conn = myappsql.datasource.connection

I believe you're getting the error as you construct the Sql object with a datasource

冷血 2024-12-21 16:41:52

您可以依赖注入 SessionFactory,而不是依赖注入 DataSource

import org.hibernate.SessionFactory
import groovy.sql.Sql

class SomeService {

    static transactional = true
    SessionFactory sessionFactory

    void someMethod() {
        // Get a connection object that participates in the current transaction
        def connection = sessionFactory.currentSession.connection()

       // Use the connection to create a Sql instance
       Sql sql = new Sql(connection)
    }
}

Instead of dependency-injecting the DataSource, you can dependency inject the SessionFactory

import org.hibernate.SessionFactory
import groovy.sql.Sql

class SomeService {

    static transactional = true
    SessionFactory sessionFactory

    void someMethod() {
        // Get a connection object that participates in the current transaction
        def connection = sessionFactory.currentSession.connection()

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