Skip to content

Commit 48bb024

Browse files
committed
#1173: Implemented json serialization of oracle BLOB column type
1 parent 041aef5 commit 48bb024

File tree

1 file changed

+9
-0
lines changed
  • server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/plugin/common/sql

1 file changed

+9
-0
lines changed

server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/plugin/common/sql/ResultSetParser.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package org.lowcoder.sdk.plugin.common.sql;
22

3+
import org.apache.commons.codec.binary.Base64;
34
import org.jetbrains.annotations.Nullable;
45

6+
import java.sql.Blob;
57
import java.sql.ResultSet;
68
import java.sql.ResultSetMetaData;
79
import java.sql.SQLException;
@@ -25,6 +27,7 @@ public class ResultSetParser {
2527
public static final String DATETIME_COLUMN_TYPE_NAME = "datetime";
2628
public static final String TIMESTAMP_COLUMN_TYPE_NAME = "timestamp";
2729
public static final String YEAR_COLUMN_TYPE_NAME = "year";
30+
public static final String BLOB_COLUMN_TYPE_NAME = "blob";
2831

2932
public static List<Map<String, Object>> parseRows(ResultSet resultSet) throws SQLException {
3033
ResultSetMetaData metaData = resultSet.getMetaData();
@@ -74,6 +77,12 @@ private static Object getValue(ResultSet resultSet, int i, String typeName) thro
7477
if (YEAR_COLUMN_TYPE_NAME.equalsIgnoreCase(typeName)) {
7578
return resultSet.getDate(i).toLocalDate().getYear();
7679
}
80+
if (BLOB_COLUMN_TYPE_NAME.equalsIgnoreCase(typeName)) {
81+
//Convert binary data into base64
82+
Blob blob = resultSet.getBlob(i);
83+
byte[] blobBytes = blob.getBytes(1, (int) blob.length());
84+
return Map.of("type", "BLOB", "length", blobBytes.length, "content", Base64.encodeBase64String(blobBytes));
85+
}
7786
return resultSet.getObject(i);
7887
}
7988

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy