Retrieve File from table by using JDBC with example

To retrieve file from table by using the JDBC here is the example. Let's, come to the first to database as MySQL and table name as myFiles and column name as file_type. These table data we have already inserted files in previous program.

Now, we should retrieve from the ResultSet using getClob() method.

1
Clob file = rs.getClob();

Here, getClob() method retrieving data from column and storing it into Clob class object as file.

Use getCharacterStream() method which will available under the Clob object, it also gets the file data from Clob object into a reader object.

1
Reader r = file.getCharacterStream();

Here, we are reding data from Reader object r and writing it into FileWriter which stores it into a file as D:/OutPutFile.txt.

Registering the Driver and creating Connection and Statements are same in the all JDBC programs. In query we are fetching only file column from 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
62
63
64
65
66
67
68
69
package com.javatbrains.jdbc;

import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class RetrieveFiles {

   static Connection con = null;
   static Statement st = null;
   static ResultSet rs = null;

   public static void main(String[] args) throws IOException {
     try {
     // Register Driver
     DriverManager.registerDriver(new com.mysql.jdbc.Driver());

     // Establish Connection
     con = DriverManager
.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=root");

     // Create a Statement
     st = con.createStatement();

     // Here is the query to fetch file column from table
     String query = "Select file_type from myfiles";

     // Execute the query by using the statement
     rs = st.executeQuery(query);
     FileWriter fw = null;
     while(rs.next()){
        // go to first row
        Clob file = rs.getClob(1);

        /*
        * Read file data from Clob instance name as file and sore into
        * Reader object
        */
        Reader r = file.getCharacterStream();

        /* Read data from reader and write into newfile.txt */
        int ch;
        fw = new FileWriter("D:/OutPutFile.txt");
          while ((ch = r.read()) != -1) {
            fw.write((char) ch);
          }
        } 
        fw.close();
      } catch (SQLException e) {
         e.printStackTrace();
      } finally {
         try {
           con.close();
           st.close();
           rs.close();
         } catch (SQLException e) {
           e.printStackTrace();
         }
      }

   }

}

Do you know?

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