gpt4 book ai didi

java - 带有 where 的新 ResultSet,或将光标移动到开头并手动检查条件

转载 作者:行者123 更新时间:2023-12-01 14:08:27 24 4
gpt4 key购买 nike

我将获得一个临时表,我将运行一个进程将数据加载到更大的表中,并从临时表中删除数据。不过,临时表中的某些行表示删除了主表中的行。

目前算法如下:

ResultSet dataToLoad = select * from ...;
ResultSet mainTable = select * from ...;

while (dataToLoad.next())
{
if(insert)
//insert this row into main table, and remove row from this table
else if(delete)
//Find the row that matches in the main table and delete it. remove row from this table
}

我的问题是关于删除 block 的。最好创建一个新的 ResultSet 来使用 where 查找行并仅删除集合中的单行,还是将光标放在开头并循环遍历光标检查条件?本质上就像在 java 代码中实现 where 子句。

当您加载到 ResultSet 中时,JDBC 缓存了多少?它会为每次光标跳转进行完整的网络往返吗?

最后,我简要地阅读了万圣节问题。我在这里有危险吗?

最佳答案

例如,为什么不尝试加载插入和删除列表

列表删除Id = .....

Whie(...){
if(delete) {
deletesId.add(idDataForDeleting);
}
}

然后你可以做类似的事情:

String sql = "DELETE FROM TABLE WHERE ID IN (" + separateByComma(deletesId) + ")";
executeDelete(sql);

当然,尝试使用PreparedStamment,我的意思是用这个你可以一步一步对数据库进行删除操作,比一项一项的删除操作要好。

关于java - 带有 where 的新 ResultSet,或将光标移动到开头并手动检查条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18728541/

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