返回顶部
首页 > 资讯 > 数据库 >我们如何使用 JDBC 从数据库中检索文件?
  • 693
分享到

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

2023-10-22 10:10:38 693人浏览 泡泡鱼
摘要

ResultSet接口提供名为getClob()和getCharacterStream()的方法来检索Clob数据类型,通常存储文件的内容。这些方法接受表示列索引的整数(或表示列名称的字符串值)并检索指定列处的值.区别在于 getClob(

ResultSet接口提供名为getClob()getCharacterStream()的方法来检索Clob数据类型,通常存储文件的内容。

这些方法接受表示列索引的整数(或表示列名称的字符串值)并检索指定列处的值.

区别在于 getClob() 方法返回一个 Clob 对象,而 getCgaracterStream() 方法返回一个包含 Clob 数据类型内容的 Reader 对象。

示例

假设我们在数据库中创建了一个名为 Articles 的表,并具有以下描述。

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

并且,我们在其中插入了三篇文章,名称为文章 1、文章 2 和文章 3,如下所示:

示例

以下程序使用 getString() 和 getClob() 方法检索表 Articles 的内容,并将其保存在指定文件。

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++;
      }
   }
}

输出

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
您可能感兴趣的文档:

--结束END--

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

本文链接: https://lsjlt.com/news/436413.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作