byte[] 如何转成java.sql.Blob类型

要将 byte[] 转换为 java.sql.Blob 类型,可以通过以下步骤实现:

  1. 创建 Blob 对象: 你需要使用数据库连接对象的 createBlob() 方法来创建一个 Blob 对象。

  2. byte[] 写入 Blob: 通过 Blob 对象的 setBytes() 方法,将 byte[] 数据写入 Blob 对象。

示例代码

java
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Blob; import java.io.ByteArrayInputStream; import java.io.InputStream; public class ByteArrayToBlobExample { public static void main(String[] args) { // 连接数据库 String url = "jdbc:mysql://localhost:3306/yourdatabase"; String user = "yourusername"; String password = "yourpassword"; Connection connection = null; PreparedStatement preparedStatement = null; try { connection = DriverManager.getConnection(url, user, password); // 创建 Blob 对象 Blob blob = connection.createBlob(); // 将 byte[] 数据写入 Blob byte[] data = {1, 2, 3, 4, 5}; // 示例数据 try (InputStream inputStream = new ByteArrayInputStream(data)) { blob.setBytes(1, data); } // 将 Blob 存入数据库 String sql = "INSERT INTO your_table (your_blob_column) VALUES (?)"; preparedStatement = connection.prepareStatement(sql); preparedStatement.setBlob(1, blob); preparedStatement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (preparedStatement != null) preparedStatement.close(); if (connection != null) connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } }

说明

  1. 创建 Blob 对象

    • 使用 connection.createBlob() 创建 Blob 对象。
  2. byte[] 数据写入 Blob

    • 使用 blob.setBytes(1, data) 方法将 byte[] 数据写入 Blob 对象。
  3. 存储 Blob 到数据库

    • 使用 PreparedStatementsetBlob() 方法将 Blob 对象设置为 SQL 查询的参数。

关键点

  • 确保数据库连接已正确建立。
  • 确保数据库表和列类型能够存储 Blob 数据。
  • setBytes() 方法的参数 1byte[] 数据在 Blob 中的起始位置,data 是要写入的数据。

关键字byte[], java.sql.Blob, createBlob(), setBytes(), PreparedStatement, InputStream