使用Java显示存储在数据库中的图像

时间:2010-06-14 10:30:28

标签: java database jdbc

当我想使用JAVA使用OLE显示存储在数据库中的图像时,我遇到了问题。

2 个答案:

答案 0 :(得分:2)

如果您的图像数据作为某个blob存储在数据库中,您可能希望使用ImageIcon并使用byte[] imageData构造函数构建它:

  

ImageIcon(byte[] imageData)

     
    

从包含支持的图像格式的图像文件中读取的字节数组创建ImageIcon,例如GIF,JPEG或(从1.3开始)PNG。

  

答案 1 :(得分:2)

尝试做一个好的猜测,我会说你必须使用blob从数据库中读取它,例如:

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();
}

然后通过将数据写入输出流来使用servlet显示它。

....

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

但这只是猜测,因为你的问题缺乏基本信息。

以下是与Blob和Servlets相关的一些链接

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

我希望这会有所帮助