2016-04-27 47 views
1

我需要在一個語句中插入多個值。這可能使用groovy的準備語句嗎?我有以下在Groovy的一條SQL語句中插入多行

sql.execute(""" 
insert into all_priceuploaddummy (seller_sku) values (?.sku), (?.sku), (?.sku) 
""" 
, [[sku:1],[sku:2],[sku:3]]) 

但是,插入3倍,第SKU,1

我該怎麼辦,沒有遍歷所有條目?

回答

4

您可以使用withBatch(String, Closure)方法在批處理中執行閉包(包含特定於關聯預處理語句的批處理操作)。

def updateCounts = sql.withBatch('insert into TABLENAME(a, b, c) values (?, ?, ?)') { ps -> 
    ps.addBatch([1, 2, 3]) 
    ps.addBatch([10, 20, 30]) 
    ps.addBatch(100, 200, 300) 
}