Вопрос по java, jasper-reports, oracle – Как просмотреть изображение из столбца BLOB-объектов в Oracle с помощью JasperReports?

4

Я попытался определить элемент изображения в макете отчета и установить тип 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   ответа
0
InputStream is = new ByteArrayInputStream((byte[]) yourBlobData);
myImage = new DefaultStreamedContent(is, "image/png");

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


2

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

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

Например:

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

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

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

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

Спасибо, это просто работает для меня. Первоначально я передавал BLOB-объект в параметр отчета без какого-либо преобразования типов или потокового преобразования. Openmindeo

Похожие вопросы