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);