Home  >  Article  >  Database  >  How can we retrieve files from database using JDBC?

How can we retrieve files from database using JDBC?

PHPz
PHPzforward
2023-09-02 10:09:011012browse

The

ResultSet interface provides methods named getClob() and getCharacterStream() to retrieve the Clob data type, which usually stores files Content.

These methods accept an integer representing a column index (or a string value representing a column name) and retrieve the value at the specified column.

The difference is that the getClob() method returns a Clob object, while The getCgaracterStream() method returns a Reader object containing contents of Clob data type.

Example

Suppose we create a table named Articles in the database with the following description.

+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| Name    | varchar(255) | YES  |     | NULL    |       |
| Article | longtext     | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+

And, we inserted three articles in it, named article 1, article 2 and article 3, as follows:

我们如何使用 JDBC 从数据库中检索文件?

##Example

The following program uses the getString() and getClob() methods to retrieve the contents of the table Articles and save it in the specified file.

import java.io.FileWriter;
import java.io.Reader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class RetrievingFileFromDatabase {
   public static void main(String args[]) throws Exception {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Creating aStatement
      Statement stmt = con.createStatement();
      //Retrieving the data
      ResultSet rs = stmt.executeQuery("select * from Articles");
      int j = 0;
      System.out.println("Contents of the table are: ");
      while(rs.next()) {
         System.out.println(rs.getString("Name"));
         Clob clob = rs.getClob("Article");
         Reader reader = clob.getCharacterStream();
         String filePath = "E:\Data\clob_output"+j+".txt";
         FileWriter writer = new FileWriter(filePath);
         int i;
         while ((i = reader.read())!=-1) {
            writer.write(i);
         }
         writer.close();
         System.out.println(filePath);
         j++;
      }
   }
}

Output

Connection established......
Contents of the table are:
article1
E:\Data\clob_output0.txt
article2
E:\Data\clob_output1.txt
article3
E:\Data\clob_output2.txt

The above is the detailed content of How can we retrieve files from database using JDBC?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete