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

terrymanu 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 c2f39240f52 Refactor JDBC prepared statement parameter index (#39827)
c2f39240f52 is described below

commit c2f39240f526c82530cafd6fa328a427dabdab3c
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Sep 13 14:35:03 2026 +0800

    Refactor JDBC prepared statement parameter index (#39827)
---
 .../jdbc/statement/JDBCBackendStatement.java          | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/statement/JDBCBackendStatement.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/statement/JDBCBackendStatement.java
index fe6995845a5..6e4ab193e4f 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/statement/JDBCBackendStatement.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/statement/JDBCBackendStatement.java
@@ -66,15 +66,8 @@ public final class JDBCBackendStatement implements 
ExecutorJDBCStatementManager
         PreparedStatement result = getPreparedStatement(connection, sql, 
option.isReturnGeneratedKeys());
         result.clearParameters();
         Iterator<Object> paramIterator = params.iterator();
-        int index = 0;
-        while (paramIterator.hasNext()) {
-            Object param = paramIterator.next();
-            if (param instanceof TypeUnspecifiedSQLParameter) {
-                result.setObject(index + 1, param, Types.OTHER);
-            } else {
-                result.setObject(index + 1, param);
-            }
-            index++;
+        for (int index = 1; paramIterator.hasNext(); index++) {
+            setParameter(result, index, paramIterator.next());
         }
         if (ConnectionMode.MEMORY_STRICTLY == connectionMode) {
             setFetchSize(result, databaseType);
@@ -95,6 +88,14 @@ public final class JDBCBackendStatement implements 
ExecutorJDBCStatementManager
         return returnGeneratedKeys ? connection.prepareStatement(sql, 
Statement.RETURN_GENERATED_KEYS) : connection.prepareStatement(sql);
     }
     
+    private void setParameter(final PreparedStatement preparedStatement, final 
int index, final Object param) throws SQLException {
+        if (param instanceof TypeUnspecifiedSQLParameter) {
+            preparedStatement.setObject(index, param, Types.OTHER);
+            return;
+        }
+        preparedStatement.setObject(index, param);
+    }
+    
     private void setFetchSize(final Statement statement, final DatabaseType 
databaseType) throws SQLException {
         Optional<StatementMemoryStrictlyFetchSizeSetter> fetchSizeSetter = 
DatabaseTypedSPILoader.findService(StatementMemoryStrictlyFetchSizeSetter.class,
 databaseType);
         if (fetchSizeSetter.isPresent()) {

Reply via email to