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()) {