#java #ibm-midrange #db2-400
#java #ibm — средний уровень #db2-400
Вопрос:
Я написал небольшое java-приложение на клиенте, которое вставляет изображение в виде большого двоичного объекта в таблицу на IBM i. Когда я запрашиваю таблицу, я вижу, что столбец заполнен. Как отобразить данные больших двоичных объектов в виде изображения, чтобы подтвердить правильность записи данных?
В приложении Java я записываю изображение в папку Windows 7 в виде файла PNG, который, как я подтвердил, можно просмотреть с помощью Window Photo Viewer. Затем я вставляю то же изображение в свою таблицу на IBM i версии 7R3.
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 ) но я не могу заставить изображение отображаться.
Могу ли я просмотреть данные больших двоичных объектов в виде изображения, чтобы убедиться, что они записываются правильно?
Ответ №1:
Вы не сохраняете изображение как base64, вы сохраняете его как двоичный файл, поэтому конвертер base64 в изображение не поможет.
Запишите байты обратно в потоковый файл на ПК или даже в IFS и откройте его с помощью программы просмотра фотографий.