You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by hu...@apache.org on 2026/07/29 06:49:44 UTC

(shardingsphere) branch master updated: Minor refacor in ShardingSpherePreparedStatement and ShardingSphereStatement (#39267)

This is an automated email from the ASF dual-hosted git repository.

iamhucong 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 79251e0abdf Minor refacor in ShardingSpherePreparedStatement and ShardingSphereStatement (#39267)
79251e0abdf is described below

commit 79251e0abdf084766eaaba18deddfaa5f20d3577
Author: Zhengqiang Duan <du...@apache.org>
AuthorDate: Wed Jul 29 14:49:36 2026 +0800

    Minor refacor in ShardingSpherePreparedStatement and ShardingSphereStatement (#39267)
---
 .../jdbc/core/statement/ShardingSpherePreparedStatement.java | 12 +++++++++---
 .../driver/jdbc/core/statement/ShardingSphereStatement.java  | 11 ++++++++---
 2 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
index 7c291d6f528..fa7c57d66af 100644
--- a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
+++ b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.database.connector.core.metadata.database.metad
 import org.apache.shardingsphere.database.connector.core.type.DatabaseTypeRegistry;
 import org.apache.shardingsphere.database.exception.core.SQLExceptionTransformEngine;
 import org.apache.shardingsphere.driver.executor.callback.add.StatementAddCallback;
+import org.apache.shardingsphere.driver.executor.callback.replay.StatementReplayCallback;
 import org.apache.shardingsphere.driver.executor.engine.batch.preparedstatement.DriverExecuteBatchExecutor;
 import org.apache.shardingsphere.driver.executor.engine.facade.DriverExecutorFacade;
 import org.apache.shardingsphere.driver.jdbc.adapter.AbstractPreparedStatementAdapter;
@@ -175,7 +176,8 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
             handleAutoCommitBeforeExecution(queryContext.getSqlStatementContext().getSqlStatement(), connection);
             findGeneratedKey().ifPresent(optional -> generatedValues.addAll(optional.getGeneratedValues()));
             currentResultSet =
-                    driverExecutorFacade.executeQuery(usedDatabase, metaData, queryContext, this, columnLabelAndIndexMap, (StatementAddCallback<PreparedStatement>) this::addStatements, this::replay);
+                    driverExecutorFacade.executeQuery(usedDatabase, metaData, queryContext, this, columnLabelAndIndexMap, (StatementAddCallback<PreparedStatement>) this::addStatements,
+                            createReplayCallback());
             if (currentResultSet instanceof ShardingSphereResultSet) {
                 columnLabelAndIndexMap = ((ShardingSphereResultSet) currentResultSet).getColumnLabelAndIndexMap();
             }
@@ -212,7 +214,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
             this.queryContext = queryContext;
             handleAutoCommitBeforeExecution(queryContext.getSqlStatementContext().getSqlStatement(), connection);
             int result = driverExecutorFacade.executeUpdate(usedDatabase, metaData, queryContext,
-                    (sql, statement) -> ((PreparedStatement) statement).executeUpdate(), (StatementAddCallback<PreparedStatement>) this::addStatements, this::replay);
+                    (sql, statement) -> ((PreparedStatement) statement).executeUpdate(), (StatementAddCallback<PreparedStatement>) this::addStatements, createReplayCallback());
             findGeneratedKey().ifPresent(optional -> generatedValues.addAll(optional.getGeneratedValues()));
             return result;
             // CHECKSTYLE:OFF
@@ -237,7 +239,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
             this.queryContext = queryContext;
             handleAutoCommitBeforeExecution(queryContext.getSqlStatementContext().getSqlStatement(), connection);
             boolean result = driverExecutorFacade.execute(usedDatabase, metaData, queryContext, (sql, statement) -> ((PreparedStatement) statement).execute(),
-                    (StatementAddCallback<PreparedStatement>) this::addStatements, this::replay);
+                    (StatementAddCallback<PreparedStatement>) this::addStatements, createReplayCallback());
             findGeneratedKey().ifPresent(optional -> generatedValues.addAll(optional.getGeneratedValues()));
             return result;
             // CHECKSTYLE:OFF
@@ -270,6 +272,10 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
         return new QueryContext(sqlStatementContext, sql, params, hintValueContext, connection.getDatabaseConnectionManager().getConnectionContext(), metaData, true);
     }
     
+    private StatementReplayCallback createReplayCallback() {
+        return this::replay;
+    }
+    
     private void replay() throws SQLException {
         replaySetParameter(statements, parameterSets);
         for (Statement each : statements) {
diff --git a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
index af377f29cad..397a6860feb 100644
--- a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
+++ b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
@@ -26,6 +26,7 @@ import org.apache.shardingsphere.database.exception.core.SQLExceptionTransformEn
 import org.apache.shardingsphere.driver.executor.callback.add.StatementAddCallback;
 import org.apache.shardingsphere.driver.executor.callback.execute.StatementExecuteCallback;
 import org.apache.shardingsphere.driver.executor.callback.execute.StatementExecuteUpdateCallback;
+import org.apache.shardingsphere.driver.executor.callback.replay.StatementReplayCallback;
 import org.apache.shardingsphere.driver.executor.engine.batch.statement.BatchStatementExecutor;
 import org.apache.shardingsphere.driver.executor.engine.facade.DriverExecutorFacade;
 import org.apache.shardingsphere.driver.jdbc.adapter.AbstractStatementAdapter;
@@ -116,7 +117,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
             prepareExecute(queryContext);
             ShardingSphereDatabase usedDatabase = metaData.getDatabase(usedDatabaseName);
             currentResultSet = driverExecutorFacade.executeQuery(usedDatabase, metaData, queryContext, this, null,
-                    (StatementAddCallback<Statement>) (statements, parameterSets) -> this.statements.addAll(statements), this::replay);
+                    (StatementAddCallback<Statement>) (statements, parameterSets) -> this.statements.addAll(statements), createReplayCallback());
             return currentResultSet;
             // CHECKSTYLE:OFF
         } catch (final RuntimeException | SQLException ex) {
@@ -187,7 +188,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
         prepareExecute(queryContext);
         ShardingSphereDatabase usedDatabase = metaData.getDatabase(usedDatabaseName);
         return driverExecutorFacade.executeUpdate(usedDatabase, metaData, queryContext,
-                updateCallback, (StatementAddCallback<Statement>) (statements, parameterSets) -> this.statements.addAll(statements), this::replay);
+                updateCallback, (StatementAddCallback<Statement>) (statements, parameterSets) -> this.statements.addAll(statements), createReplayCallback());
     }
     
     @Override
@@ -249,7 +250,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
         prepareExecute(queryContext);
         ShardingSphereDatabase usedDatabase = metaData.getDatabase(usedDatabaseName);
         return driverExecutorFacade.execute(usedDatabase, metaData, queryContext, statementExecuteCallback,
-                (StatementAddCallback<Statement>) (statements, parameterSets) -> this.statements.addAll(statements), this::replay);
+                (StatementAddCallback<Statement>) (statements, parameterSets) -> this.statements.addAll(statements), createReplayCallback());
     }
     
     private QueryContext createQueryContext(final String originSQL) throws SQLException {
@@ -279,6 +280,10 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
         statements.clear();
     }
     
+    private StatementReplayCallback createReplayCallback() {
+        return this::replay;
+    }
+    
     private void replay() throws SQLException {
         for (Statement each : statements) {
             getMethodInvocationRecorder().replay(each);