2024-06-11 15:40信息 • 发布者:

在Java 中写入MySQL BLOB数据, 您需要使用JDBC(Java Database Connectivity )连接MySQL数据库,并通过PreparedStatement对象插入数据到BLOB字段。 以下是执行此操作的基本步骤:

  1. 加载MySQL数据库驱动程序。
  2. 获取数据库连接。
  3. 创建PreparedStatement对象。
  4. 编写SQL语句, 使用占位符指定BLOB字段。
  5. 选择本地文件的内容作为BLOB数据。
  6. 使用setBinaryStream方法将文件内容设置为参数值。
  7. 执行SQL语句, 将数据插入数据库。
  8. 关闭连接和资源。

下面是一个完整的代码示例:

 import java.sql .Connection;
  import java.sql.DriverManager;
  import java.sql.PreparedStatement;
  import java.io.File;
  import java.io.FileInputStream;

 public class Blob InsertExample {
     public static void main(String [] args) {
         String url = "jdbc:mysql://localhost : 3306/your_database";
          String user = "your_username";
          String password = "your_password";

          try (Connection conn = DriverManager.getConnection (url,  user,  password);
               PreparedStatement ps = conn.prepareStatement ("INSERT INTO my_table(my_blob) VALUES (?)")) {

              File file = new File("example.png");
              FileInputStream fis = new FileInputStream (file);

             ps.setBinaryStream(1,  fis,  (int) file.length());

             // 执行SQL语句
              int rowsInserted = ps.executeUpdate();
              if (rowsInserted > 0) {
                  System.out.println("Data inserted successfully into  the database.");
              }

         } catch (Exception e) {
              e.printStackTrace();
          }
     }
 }

在这个示例中, 我们先通过DriverManager获取数据库连接, 然后创建一个PreparedStatement对象。 我们编写一个SQL语句, 使用占位符?来指定BLOB字段。 接着, 我们创建一个File对象并指定待写入的BLOB数据, 使用FileInputStream来读取文件内容。 最后, 通过setBinaryStream方法将读取的数据流设置为参数值,并通过executeUpdate方法将数据插入到数据库中。

请记住,在实际应用中, 您还需要注意防止SQL注入攻击,并适时地关闭连接和资源。