gpt4 book ai didi

java - 我可以用批处理替换一系列数据库操作吗

转载 作者:行者123 更新时间:2023-12-01 11:16:45 25 4
gpt4 key购买 nike

我查了几个executeBatch的例子,但是好像我们只能批量添加一种语句。但我手头有一个问题,我需要执行 2 个更新查询,然后执行一个插入查询。有没有办法批量执行此操作。

我必须从一组 XML 文件中解析大约 100 000 条记录,并为每条记录更新我的数据库。每条记录都包含要插入到数据库中的日期范围。例如,如果我在数据库中有以下 2 条记录

 Record A - range of 1st Jan 2000 to 31st Dec 2010 
Record B - range of 1st Jan 2011 to 31st Dec 2020

现在如果新记录出现在以下范围

 Record N - range of 1st Jan 2005 to 31st Jan 2014

为了添加此记录,我需要执行以下 2 个更新查询和 1 个插入查询

 Update end date of Record A to 31st Jan 2004
Update start date of Record B to 1st Jan 2015
Insert record N

我想知道是否可以批量执行 2 次更新和 1 次插入,然后移至下一条记录,依此类推。

我可以有单独的批处理进行插入和更新,但假设要对尚未插入的记录进行更新,反之亦然,我会遇到问题。所以顺序很重要。感谢您的帮助

最佳答案

异构批处理是不可能的。

如果您使用准备好的语句(正如您应该的那样),异构批处理将是不可能的,因为 PS 创建将变得困惑,试图在更新中绑定(bind)您的变量,并且它不会工作。但是,您可以编写一个需要

的存储过程

([要更新的 RecordIds], endupdate, startupdate, startinsert, endinsert ,[other_details])

作为参数。然后,在检查您的条件后,使用相应的值执行您的程序,该值将是

RecordAid, endupdate, RecordBid, startupdate, RecordNid, startinsert, endinsert

注意:这将消除批处理的优势。这与执行两次更新然后执行一次插入一样好。我宁愿建议一起批量更新并单独运行插入。

关于java - 我可以用批处理替换一系列数据库操作吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31731294/

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