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

PHPz
发布: 2023-09-02 10:09:01
转载
990 人浏览过

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,如下所示:

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

示例

以下程序使用 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
登录后复制

以上是我们如何使用 JDBC 从数据库中检索文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!