How to retrieve images from database by using JDBC?
How to
retrieve images from database table by using the JDBC table? To know about this
topic follow the below lines,
For downloading images from database
table we no need to create any databases or tables, but we should know the
which table and which column contains the images to retrieve. Once you know the
table and column to retrieve images, here is the program to retrieve the images
from database table.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | package com.javatbrains.jdbc; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * * @author SUBBU * */ public class DownloadImages { static String URL = "jdbc:mysql://localhost:3306/jbdc"; static String userName = "root"; static String password = "root"; public static void main(String[] args) { try { // Loading the JDBC Driver Class.forName("org.gjt.mm.mysql.Driver"); // Creating JDBC Connection Connection con = DriverManager.getConnection( URL, userName, password); // Create a Statement by using Connection instance Statement st = con.createStatement(); // Executing Query by using Statement instance ResultSet rs = st.executeQuery("select image from images"); int i = 0; while (rs.next()) { InputStream in = rs.getBinaryStream(1); OutputStream f = new FileOutputStream(new File("E:/mis_images/test" + i + ".png")); i++; int c = 0; while ((c = in.read()) > -1) { f.write(c); } f.close(); in.close(); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } |
The previous
class DownloadImages represents how to download images by using JDBC. First, few
steps are common in any of the JDBC program, those steps are loading the driver
by using Class.forName() method, creating connection by using DriverManager.getConnection() method.
The previous post InsertingImages after creating connection we used PreparedStatement for inserting images
into database table. But, in this example we are using Statement to download images from
table.
After executing the
query, capture result into ResultSet which is present in java.sql package. DownloadImages program rs.getBinaryStream(1) will retrieve each time
a single image. By using the FileOutputStream images are getting saved into specified path.
Currently we are
saving images into '.png' format. If you want any other format like .jpg..etc of the
standard images formats you can download by passing that specified extension
type in File().
Comments
Post a Comment