[英]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.