From 1c0367b55a55a921a166628694346387773e3850 Mon Sep 17 00:00:00 2001 From: Adamcz Date: Thu, 26 Mar 2026 12:11:42 +0800 Subject: [PATCH 1/2] =?UTF-8?q?prepareStatement=E4=B8=8D=E6=94=AF=E6=8C=81?= =?UTF-8?q?Blob=E7=B1=BB=E5=9E=8B=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/apache/iotdb/jdbc/IoTDBPreparedStatement.java | 10 +++++++++- .../iotdb/jdbc/IoTDBTablePreparedStatement.java | 11 ++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBPreparedStatement.java b/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBPreparedStatement.java index c92b6549bf9d0..2dc2414cd240f 100644 --- a/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBPreparedStatement.java +++ b/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBPreparedStatement.java @@ -257,7 +257,15 @@ public void setBinaryStream(int parameterIndex, InputStream x, long length) thro @Override public void setBlob(int parameterIndex, Blob x) throws SQLException { - throw new SQLException(Constant.PARAMETER_SUPPORTED); + if (x == null) { + setNull(parameterIndex, Types.BLOB); + } else { + try { + setBytes(parameterIndex, x.getBytes(1, (int) x.length())); + } catch (SQLException e) { + throw new SQLException("Failed to read Blob data: " + e.getMessage(), e); + } + } } @Override diff --git a/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBTablePreparedStatement.java b/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBTablePreparedStatement.java index 722f1ed1a5783..7ba80cb781659 100644 --- a/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBTablePreparedStatement.java +++ b/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBTablePreparedStatement.java @@ -568,7 +568,16 @@ public void setBinaryStream(int parameterIndex, InputStream x, long length) thro @Override public void setBlob(int parameterIndex, Blob x) throws SQLException { - throw new SQLException(Constant.PARAMETER_SUPPORTED); + checkParameterIndex(parameterIndex); + if (x == null) { + setNull(parameterIndex, Types.BLOB); + } else { + try { + setBytes(parameterIndex, x.getBytes(1, (int) x.length())); + } catch (SQLException e) { + throw new SQLException("Failed to read Blob data: " + e.getMessage(), e); + } + } } @Override From 0846dd170e3d1da8b580fdd622b6e8badde6eb65 Mon Sep 17 00:00:00 2001 From: Adamcz Date: Thu, 26 Mar 2026 12:31:12 +0800 Subject: [PATCH 2/2] =?UTF-8?q?ResultSet=E4=B8=BA=E7=A9=BA=E6=97=B6?= =?UTF-8?q?=E6=8A=9B=E5=87=BASQL=E5=BC=82=E5=B8=B8=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java b/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java index f9c3fe481ac7c..c3e94425b03f1 100644 --- a/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java +++ b/iotdb-client/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java @@ -231,8 +231,15 @@ public void deleteRow() throws SQLException { } @Override - public int findColumn(String columnName) { - return ioTDBRpcDataSet.findColumn(columnName); + public int findColumn(String columnName) throws SQLException { + if (isClosed()) { + throw new SQLException("ResultSet is closed"); + } + try { + return ioTDBRpcDataSet.findColumn(columnName); + } catch (NullPointerException e) { + throw new SQLException("Column '" + columnName + "' not found"); + } } @Override