1

在我的 java 代码中,我有一个 Prepared 语句 ps_temp。

PreparedStatement ps_temp;

// loop

ps_temp.setString(1,'abc');
....
....
ps_temp.addBatch();

// end loop

ps_temp.executeBatch();

现在批处理中的一条记录创建了唯一索引约束,最终导致整个 ps_temp.executeBatch() 失败。甚至批次中的好记录都没有插入到表中。

那么,如果我的批次有一些好的和一些坏的记录(这可能导致完整性约束),那么是否有可能至少将好的记录插入到表中?

提前致谢 !!无人

4

1 回答 1

1

一批记录包含很少的坏记录是很常见的。如果您尝试一次性插入所有记录,并且一条记录失败,则整个插入将被拒绝。这是意料之中的,也是“事务处理”的核心目的。

通常对于批量插入,您可以采取两种方法:

1) 每次插入记录后提交 --> 性能非常密集的过程。

2)将总记录分成更小的“块”并插入数据库。这样只有包含坏记录的块将失败,而其他块将被插入到数据库中。

或者,如果您不想自己处理这些事情,请选择一个框架。 春季批次

在这种情况下可能是您的选择之一

于 2014-05-13T05:21:40.753 回答