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