отобразить изображение, хранящееся в базе данных с Java - PullRequest
2 голосов
/ 14 июня 2010

У меня проблема, когда я хочу отобразить изображение, хранящееся в базе данных с OLE, используя JAVA.

Ответы [ 2 ]

2 голосов
/ 14 июня 2010

Пытаясь сделать правильное предположение, я бы сказал, что вы должны прочитать его из базы данных, используя большой двоичный объект, что-то вроде:

PreparedStatement pstmt = connection.prepareStatement("SELECT imageblob FROM YOUR_TABLE where id = ?");
pstmt.setInt( 1, imageId );
ResultSet rs = pstmt.executeQuery();
byte[]data = null;
while( rs.next() ) {
    data = rs.getBlob(1).getBytes();
}

И затем отобразить его с помощью сервлета, записав данные впоток вывода.

....

response.setContentType("image/jpg");
response.getOutputStream().write(data,0,data.length );
response.getOutputStream().flush();        

Но это всего лишь предположение, потому что на ваш вопрос нехватка необходимой информации.

Вот несколько ссылок, связанных с BLOB-объектами и сервлетами

http://www.java2s.com/Code/Java/Database-SQL-JDBC/BlobJDBCdealswithBinaryData.htm

http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/blob.html

http://www.roseindia.net/servlets/retreiveimage.shtml

Надеюсьэто помогает

2 голосов
/ 14 июня 2010

Если данные вашего изображения хранятся в вашей базе данных в виде некоторого большого двоичного объекта, вы, вероятно, захотите использовать ImageIcon и сконструировать его с помощью конструктора byte[] imageData:

ImageIcon(byte[] imageData)

Создает ImageIcon из массива байтов, которые были прочитаны из файла изображения, содержащего поддерживаемый формат изображения, такого как GIF, JPEG или (по состоянию на 1.3) PNG.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...