mysql - 在 Groovy 中的一个 SQL 语句中插入多行

标签 mysql groovy

我需要在一个语句中插入多个值。这可能使用 groovy 的准备好的语句吗?我有以下内容

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

但是那插入了第一个 sku 的 3 倍,1

如何在不遍历所有条目的情况下做到这一点?

最佳答案

您可以使用 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)
}

关于mysql - 在 Groovy 中的一个 SQL 语句中插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36884489/

相关文章:

mysql - sql 选择多个地址的订单

mongodb - 从 Grails 应用程序更新 Mongo 文档字段

java - 断言 HashMap 和 MapWithDefault 之间的相等性

Java + Groovy 联合项目的 JavaDoc

java - 使用 JDBC 语句执行查询时出现 NullPointerException

mysqldump vs select into outfile

php - 如何在 INSERT 查询中将美国日期格式转换为 MYSQL 格式

mysql - 如何删除mysql数据库中的重复记录?

grails - 如何在<g:datepicker/> grails和groovy中仅显示 “hour”和 “minute”?

grails - 如何格式化电子邮件正文?