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

how to count the page views by using JSP

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

Multithreading in java with example