簡體   English   中英

Groovy SQL和數組參數

[英]Groovy SQL and Array parameter

我有一個存儲過程接受一個Array類型的參數,我想通過groovy.sql.Sql.call(...)調用它,但是我不知道如何實例化java.sql.Array實例。作為參數傳遞。

在普通JDBC中,我可以通過java.sql.Connection.createArrayOf(...)創建java.sql.Array ,但無法通過groovy.sql.Sql獲得對連接的引用。

注意,我通過傳遞數據源創建了我的Sql實例,因此groovy.sql.Sql.getConnection()返回null。

groovy.sql.Sql類將根據需要從DataSource創建一個連接,並在完成后將其丟棄。 使用cacheConnection保持連接供您使用:

def sql = new Sql(datasource)
sql.cacheConnection {
    assert sql.connection != null
    println sql.rows('select * from mytable where arraycol = ?',
        sql.connection.createArrayOf('integer', [1, 2, 3] as Object[]))
}

謝謝@ataylor。 使用您的答案作為指導,我發現該連接已傳遞到閉包中,因此您無需引用sql.getConnection()。 我提出了以下我更喜歡的內容:

def sql = new Sql(datasource)
sql.cacheConnection { Connection con ->
    assert con != null
    def array = con.createArrayOf('integer', [1, 2, 3] as Object[]))
    println sql.rows('select * from mytable where arraycol = ?', array)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM