MySQL 如何使用JDBC将文件插入/存储到数据库中

MySQL 如何使用JDBC将文件插入/存储到数据库中

通常情况下,文件的内容会存储在MySQL数据库中的Clob(TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT)数据类型下。

JDBC提供对Clob数据类型的支持,使得可以在数据库的表中存储文件内容。

PreparedStatement接口的setCharacterStream()方法接受表示参数的整数索引,以及一个Reader对象作为参数,用来将指定的读取器对象(文件)作为值设置到指定索引的参数(占位符)中。

当需要发送非常大的文本值时,可以使用此方法。

阅读更多:MySQL 教程

使用JDBC存储文本文件:

如果需要使用JDBC程序将文件存储到数据库中,则需要创建一个带有Clob(TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT)数据类型的表,如下所示:

CREATE TABLE Articles(Name VARCHAR(255), Article LONGTEXT);

现在,使用JDBC连接到数据库,并准备好PreparedStatement将值插入到上面创建的表中:

String query = "INSERT INTO Tutorial(Name, Article) VALUES (?,?)";PreparedStatement pstmt = con.prepareStatement(query);

使用PreparedStatement接口的setter方法设置占位符的值,并且对于Clob数据类型,使用setCharacterStream()方法设置值。

示例

以下是一个示例,演示如何使用JDBC将文件插入到MySQL数据库中。在这里,我们已经创建了一个带有Clob数据类型的表,并将值插入到其中。

import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertingFileToDatabase {
   public static void main(String args[]) throws Exception {
      //注册驱动
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //获取连接
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("已建立连接......");
      //插入值
      String query = "INSERT INTO Articles(Name, Article) VALUES (?, ?)";
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "文献1");
      FileReader reader = new FileReader("E:\data\article1.txt");
      pstmt.setCharacterStream(2, reader);
      pstmt.execute();
      pstmt.setString(1, "文献2");
      reader = new FileReader("E:\data\article2.txt");
      pstmt.setCharacterStream(2, reader);
      pstmt.execute();
      pstmt.setString(1, "文献3");
      reader = new FileReader("E:\data\article3.txt");
      pstmt.setCharacterStream(2, reader);
      pstmt.execute();
      System.out.println("数据已插入......");
   }
}

输出

已建立连接......
数据已插入......

使用MySQL Workbench,可以将表格的内容导出到各种文件中,例如html文件、.csv文件、文本文件等。如果在插入数据到HTML文件后导出表格的内容,则输出结果将如下图所示:

MySQL 如何使用JDBC将文件插入/存储到数据库中

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程