在模拟准备好的语句时,如何使用 groovy Sql 进行批量插入?我发现的所有示例都类似于以下示例,并且不使用准备好的语句。
withBatch { stmt ->
stmt.addBatch("insert into table (field1,field2) values('value1','value2')")
stmt.addBatch("insert into table (field1,field2) values('value3','value4')")
}
根据此链接https://issues.apache.org/jira/browse/GROOVY-3504无法直接从批处理中使用准备好的语句。模拟这种情况的最佳方法是什么,这样我就可以避免编写自己的代码来避免 sql 注入(inject)?
最佳答案
Groovy 1.8.1 引入了对带有批处理的预处理语句的支持。简单的例子:
sql.withBatch(20, """update some_table
set some_column = :newvalue
where id = :key """) { ps ->
mymap.each { k,v ->
ps.addBatch(key:k, newvalue:v)
}
}
另请参阅我关于该主题的帖子:http://novyden.blogspot.com/2011/09/groovy-batch-prepared-statement-nice.html
关于jdbc - 使用groovy Sql批量插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2848857/