Вывести содержимое BLOB из DB2 на AS400 - PullRequest
1 голос
/ 21 апреля 2019

Я написал небольшое приложение Java на клиенте, которое вставляет изображение в виде BLOB в таблицу на IBM i.Когда я запрашиваю таблицу, я вижу, что колонка заполнена.Как я отображаю BLOB-данные в виде изображения, чтобы подтвердить, что данные были правильно записаны?

В приложении Java я записываю изображение в папку Windows 7 в виде PNG-файла, который, как я подтвердил, можно просмотреть.с окном просмотра фотографий.Затем я вставляю то же изображение в свою таблицу на V7R3 IBM i.

Blob blob = conn.createBlob();
try {
    os = new ByteArrayOutputStream();

    ObjectOutputStream oos;
    oos = new ObjectOutputStream(blob.setBinaryStream(1));
    oos.writeObject(outputfile);
    oos.close();

    // Write the image as a BLOB to prfruncap
    queryStr = "INSERT INTO prfdta.prfruncap (rcrun, rcseq, rcimage)"
                 + " VALUES(?,?,?)";
    pstmt1 = conn.prepareStatement(queryStr);
    pstmt1.setInt(1,run);
    pstmt1.setInt(2, sequence);
    pstmt1.setBlob(3, blob);
    pstmt1.executeUpdate();

    } catch (SQLException seRs) {
        seRs.printStackTrace();
        throw seRs; 
    } catch (IOException e) {
    e.printStackTrace();
}

Когда я запрашиваю данные, я вижу, что столбец содержит данные.Я надеялся, что смогу вставить данные в онлайн-конвертер, такой как (https://codebeautify.org/base64-to-image-converter), но не могу отобразить изображение. Могу ли я просмотреть данные BLOB как изображение, чтобы убедиться, что они пишутся правильно?

1 Ответ

2 голосов
/ 22 апреля 2019

Вы не храните изображение как base64, вы сохраняете его как двоичный файл, поэтому конвертер base64 в изображение не поможет.

Записать байты обратно в потоковый файл, на ПК или даже в IFS, и использовать Photo viewer, чтобы открыть его.

...