byte[] 如何转成java.sql.Blob类型
要将 byte[]
转换为 java.sql.Blob
类型,可以通过以下步骤实现:
创建
Blob
对象: 你需要使用数据库连接对象的createBlob()
方法来创建一个Blob
对象。将
byte[]
写入Blob
: 通过Blob
对象的setBytes()
方法,将byte[]
数据写入Blob
对象。
示例代码
javaimport 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();
}
}
}
}
说明
创建
Blob
对象:- 使用
connection.createBlob()
创建Blob
对象。
- 使用
将
byte[]
数据写入Blob
:- 使用
blob.setBytes(1, data)
方法将byte[]
数据写入Blob
对象。
- 使用
存储
Blob
到数据库:- 使用
PreparedStatement
的setBlob()
方法将Blob
对象设置为 SQL 查询的参数。
- 使用
关键点
- 确保数据库连接已正确建立。
- 确保数据库表和列类型能够存储
Blob
数据。 setBytes()
方法的参数1
是byte[]
数据在Blob
中的起始位置,data
是要写入的数据。
关键字:byte[]
, java.sql.Blob
, createBlob()
, setBytes()
, PreparedStatement
, InputStream