This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 38479f2df40 Add batch test with multiple statements (#29307)
38479f2df40 is described below
commit 38479f2df4033a176e4729924256bf811d2326d6
Author: ZhangCheng <[email protected]>
AuthorDate: Thu Dec 7 15:31:55 2023 +0800
Add batch test with multiple statements (#29307)
---
.../statement/ShardingPreparedStatementTest.java | 60 ++++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git
a/test/e2e/driver/src/test/java/org/apache/shardingsphere/test/e2e/driver/statement/ShardingPreparedStatementTest.java
b/test/e2e/driver/src/test/java/org/apache/shardingsphere/test/e2e/driver/statement/ShardingPreparedStatementTest.java
index c4b59660d63..ca3e1306b54 100644
---
a/test/e2e/driver/src/test/java/org/apache/shardingsphere/test/e2e/driver/statement/ShardingPreparedStatementTest.java
+++
b/test/e2e/driver/src/test/java/org/apache/shardingsphere/test/e2e/driver/statement/ShardingPreparedStatementTest.java
@@ -71,6 +71,8 @@ class ShardingPreparedStatementTest extends
AbstractShardingDriverTest {
private static final String UPDATE_BATCH_SQL = "UPDATE t_order SET
status=? WHERE status=?";
+ private static final String UPDATE_ORDER_ITEM_BATCH_SQL = "UPDATE
t_order_item SET status=? WHERE status=?";
+
private static final String UPDATE_WITH_ERROR_COLUMN = "UPDATE t_order SET
error_column=?";
@Test
@@ -366,6 +368,64 @@ class ShardingPreparedStatementTest extends
AbstractShardingDriverTest {
}
}
+ @Test
+ public void assertAddBatchWithMultiStatements() throws SQLException {
+ try (
+ Connection connection =
getShardingSphereDataSource().getConnection();
+ PreparedStatement insertStatement =
connection.prepareStatement(INSERT_WITH_GENERATE_KEY_SQL);
+ PreparedStatement updateStatement =
connection.prepareStatement(UPDATE_ORDER_ITEM_BATCH_SQL);
+ PreparedStatement queryStatement =
connection.prepareStatement(SELECT_SQL_WITH_PARAMETER_MARKER_RETURN_STATUS)) {
+ connection.createStatement().execute("DELETE FROM t_order_item");
+ insertStatement.setInt(1, 3101);
+ insertStatement.setInt(2, 11);
+ insertStatement.setInt(3, 11);
+ insertStatement.setString(4, "BATCH");
+ insertStatement.addBatch();
+ queryStatement.setInt(1, 1);
+ queryStatement.setInt(2, 1);
+ try (ResultSet resultSet = queryStatement.executeQuery()) {
+ assertFalse(resultSet.next());
+ }
+ updateStatement.setString(1, "INIT");
+ updateStatement.setString(2, "BATCH");
+ updateStatement.addBatch();
+ insertStatement.setInt(1, 3102);
+ insertStatement.setInt(2, 12);
+ insertStatement.setInt(3, 12);
+ insertStatement.setString(4, "BATCH");
+ insertStatement.addBatch();
+ updateStatement.setString(1, "BATCH");
+ updateStatement.setString(2, "INIT");
+ updateStatement.addBatch();
+ queryStatement.setInt(1, 2);
+ queryStatement.setInt(2, 2);
+ try (ResultSet resultSet = queryStatement.executeQuery()) {
+ assertFalse(resultSet.next());
+ }
+ insertStatement.setInt(1, 3111);
+ insertStatement.setInt(2, 21);
+ insertStatement.setInt(3, 21);
+ insertStatement.setString(4, "BATCH");
+ insertStatement.addBatch();
+ updateStatement.setString(1, "INIT");
+ updateStatement.setString(2, "BATCH");
+ updateStatement.addBatch();
+ insertStatement.setInt(1, 3112);
+ insertStatement.setInt(2, 22);
+ insertStatement.setInt(3, 22);
+ insertStatement.setString(4, "BATCH");
+ insertStatement.addBatch();
+ int[] insertResult = insertStatement.executeBatch();
+ for (int each : insertResult) {
+ assertThat(each, is(1));
+ }
+ int[] updateResult = updateStatement.executeBatch();
+ for (int each : updateResult) {
+ assertThat(each, is(4));
+ }
+ }
+ }
+
@Test
void assertAddGetGeneratedKeysForNoGeneratedValues() throws SQLException {
try (