Как просмотреть изображение из столбца BLOB-объектов в Oracle с помощью JasperReports?

Я попытался определить элемент изображения в макете отчета и установить тип java.io.Inputstream, но это нене работает, также я попытался установить java.awt.Image и ни один не работает, за исключением того, что ям становится

java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to java.awt.Image

или же

java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to java.io.InputStream

Также я пытался Google, но результаты, что яЯ делаю прямо сейчас.

Спасибо за вашу помощь.

Ответы на вопрос(2)

InputStream is = new ByteArrayInputStream((byte[]) yourBlobData);
myImage = new DefaultStreamedContent(is, "image/png");

на странице JSF;


Решение Вопроса

Не видя, как тыповторно вызывать BLOB-объект, чтобы встроить изображение в код отчета ...

Используйтеblob.getBinaryStream()Преобразуйте поток, используя.javax.imageio.ImageIO.read( InputStream )

Например:

javax.imageio.ImageIO.read( blob.getBinaryStream() )

Это вернет экземплярBufferedImageкакие подклассыjava.awt.Imageи должен быть подходящим объектом для встраивания в отчет.

blob переменная, показанная в примере, должна будет использовать соответствующую переменную из отчета (которая представляет данные из нужного столбца).

Смотрите также:

https://forums.oracle.com/forums/thread.jspa?threadID=2081381
 Openmindeo05 сент. 2012 г., 16:55
Спасибо, это просто работает для меня. Первоначально я передавал BLOB-объект в параметр отчета без какого-либо преобразования типов или потокового преобразования.

Ваш ответ на вопрос