Skip to content

Commit 0cd9490

Browse files
authored
Merge pull request #1517 from lowcoder-org/fix/oracle_blob_serialize
#1173: Implemented json serialization of oracle BLOB column type
2 parents 42a8018 + 7eed7e2 commit 0cd9490

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