diff --git a/src/main/java/xyz/zhouxy/jdbc/BatchUpdateResult.java b/src/main/java/xyz/zhouxy/jdbc/BatchUpdateResult.java index 82f64a3..b138a65 100644 --- a/src/main/java/xyz/zhouxy/jdbc/BatchUpdateResult.java +++ b/src/main/java/xyz/zhouxy/jdbc/BatchUpdateResult.java @@ -51,6 +51,11 @@ public class BatchUpdateResult { */ private final int batchSize; + /** + * 是否静默模式 + */ + private final boolean quietly; + /** * 本次分批更新的状态 */ @@ -75,10 +80,11 @@ public class BatchUpdateResult { */ private int completeBatchCount; - BatchUpdateResult(int total, int batchCount, int batchSize) { + BatchUpdateResult(int total, int batchCount, int batchSize, boolean quietly) { this.total = total; this.batchCount = batchCount; this.batchSize = batchSize; + this.quietly = quietly; this.allUpdateCounts = new HashMap<>(batchCount); this.allErrorsInfo = new HashMap<>(batchCount); @@ -101,17 +107,15 @@ public class BatchUpdateResult { this.allUpdateCounts.put(batchIndex, updateCounts); this.allErrorsInfo.put(batchIndex, new BatchUpdateErrorInfo(batchIndex, cause)); if (this.status == BatchUpdateStatus.SUCCESS) { - this.status = BatchUpdateStatus.COMPLETED_WITH_ERRORS; + if (this.quietly) { + this.status = BatchUpdateStatus.COMPLETED_WITH_ERRORS; + } + else { + this.status = BatchUpdateStatus.INTERRUPTED; + } } } - /** - * 中断 - */ - void interrupt() { - this.status = BatchUpdateStatus.INTERRUPTED; - } - /** * 获取指定批次更新结果 * diff --git a/src/main/java/xyz/zhouxy/jdbc/JdbcOperationSupport.java b/src/main/java/xyz/zhouxy/jdbc/JdbcOperationSupport.java index 0a79b36..a63d2f8 100644 --- a/src/main/java/xyz/zhouxy/jdbc/JdbcOperationSupport.java +++ b/src/main/java/xyz/zhouxy/jdbc/JdbcOperationSupport.java @@ -232,13 +232,13 @@ class JdbcOperationSupport { assertSqlNotNull(sql); checkArgument(batchSize > 0, "The batch size must be greater than 0."); if (params == null || params.isEmpty()) { - return new BatchUpdateResult(0, 0, batchSize); + return new BatchUpdateResult(0, 0, batchSize, quietly); } final int paramsSize = params.size(); final int batchCount = (paramsSize + batchSize - 1) / batchSize; - final BatchUpdateResult result = new BatchUpdateResult(paramsSize, batchCount, batchSize); + final BatchUpdateResult result = new BatchUpdateResult(paramsSize, batchCount, batchSize, quietly); try (PreparedStatement stmt = conn.prepareStatement(sql)) { // 表示第几条数据,1, 2, 3, ..., paramsSize @@ -263,7 +263,6 @@ class JdbcOperationSupport { final int[] updateCounts = getUpdateCountsOnError(indexInBatch, e); result.recordErrorBatch(batchIndex, updateCounts, e); if (!quietly) { - result.interrupt(); break; } }