Как извлечь данные столбца типа данных BLOB-объектов из базы данных h2? - PullRequest
0 голосов
/ 10 апреля 2019

Мы развернули узлы и опубликовали транзакцию от одного узла к другому, используя corda, и это же было сохранено в базе данных h2 в таблице "NODE_TRANSACTIONS".Столбец TRANSACTION_VALUE в таблице NODE_TRANSACTIONS имеет тип данных BLOB.

Пожалуйста, предложите, как извлечь данные из этого столбца в удобочитаемом формате

Мы пытались извлечь данные, используя resultset.getBinaryStream в Java, ноне уверен в поддерживаемом типе файла, в котором он должен быть прочитан.Пробовал с типами файлов image / txt / pdf и т. Д., Но ни один из файлов не был в читаемом формате.

static String url = "jdbc:h2:tcp://localhost:12345/node";
    static String username = "sa";
    static String password = "";
        Class.forName("oracle.h2.Driver");
        Connection conn = DriverManager.getConnection(url, username, password);
        System.out.println("getting connection: " + conn);
String sql = "SELECT TX_ID, TRANSACTION_VALUE FROM NODE_TRANSACTIONS where rownum<2";
PreparedStatement stmt = conn.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery();
while (rs.next()) {
            InputStream data=rs.getBinaryStream(2);
            File file = new File("D:\\blob.txt");
            FileOutputStream fos = new FileOutputStream(file);
            byte[] buffer = new byte[1];
            while (data.read(buffer) > 0) {
                fos.write(buffer);
            }
            fos.close();
        }
        conn.close();

Также, пожалуйста, предложите любой другой способ прочитать данные столбца, используя функции базы данных h2 (или) функции оракула

Я ожидаю, что вывод будет в читаемом формате

1 Ответ

0 голосов
/ 13 апреля 2019

Если вы храните данные состояния в удобочитаемом формате в базе данных после транзакции, состояние должно реализовывать интерфейс QueryableState.

См. Документы по https://docs.corda.net/api-persistence.html и пример по https://github.com/corda/cordapp-example/blob/release-V4/java-source/src/main/java/com/example/state/IOUState.java

...