Convert byte array read from database to java.awt.Image in Java
Description
The following code shows how to convert byte array read from database to java.awt.Image.
Example
import java.awt.Image;
import java.awt.Toolkit;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
// w w w. jav a2 s . c om
public class Main {
static String url = "jdbc:oracle:thin:@localhost:1521:javaDemo";
static String username = "username";
static String password = "welcome";
public static void main(String[] args) throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(url, username, password);
String sql = "SELECT name, description, image FROM pictures ";
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet resultSet = stmt.executeQuery();
ByteArrayOutputStream output = new ByteArrayOutputStream();
while (resultSet.next()) {
byte[] buffer = new byte[1];
InputStream is = resultSet.getBinaryStream(3);
while (is.read(buffer) > 0) {
output.write(buffer);
}
output.close();
}
conn.close();
Image myImage = Toolkit.getDefaultToolkit().createImage(output.toByteArray());
}
}