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

Popular posts from this blog

Hibernate auto increment with example

how to count the page views by using JSP

Multithreading in java with example

How to retrieve data from table by using JDBC with example

Prime, Fibonacci and Factorial number with example in java

How to insert images into database using JDBC?

How to sort list of objects in java with examples

String interview questions and answers

Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/SystemException

Store file into table by using JDBC with example