gpt4 book ai didi

xml - 如何正确使用 AddBatch/withBatch 将 xml 标签值批量插入数据库表

转载 作者:搜寻专家 更新时间:2023-10-30 20:24:29 25 4
gpt4 key购买 nike

'innerXml' 是一个带有大量 xml 标签的 xml 文件。我正在尝试获取标签值并将它们转储到数据库表中。我试过下面的代码,它工作正常。

innerXml.Row.each { Row ->

sql.execute("INSERT INTO tab1(col1,col2) VALUES (${Row.Column0.text()},${Row.Column1.text()} )")

但由于有大量的 xml 标记,导致性能问题需要逐条插入记录。正如专家建议的那样,我尝试使用 withBatch 来提高性能。请找到我尝试使用 withBatch 的以下代码:

sql.withBatch(386, """  insert into tab1(col1,col2) values (?, ?) """) { ps ->   innerXml.Row.each { Row ->ps.addBatch(${Row.Column0.text()} ,${Row.Column1.text()})  }}

但我遇到以下错误:

groovy.lang.MissingMethodException: No signature of method: Script41.$() is applicable for argument types: (Script41$_run_closure2_closure3_closure4) values: [Script41$_run_closure2_closure3_closure4@23724e8d] Possible solutions: is(java.lang.Object), run(), run(), any(), use([Ljava.lang.Object;), any(groovy.lang.Closure) error at line: 38

请帮忙

提前致谢!!

最佳答案

你需要做的:

// 386 is an odd batch size?
sql.withBatch(386, 'insert into tab1(col1,col2) values (?, ?)') { ps ->
innerXml.Row.each { row ->
ps.addBatch(row.Column0.text(), row.Column1.text())
}
}

关于xml - 如何正确使用 AddBatch/withBatch 将 xml 标签值批量插入数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43364341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com