如何在Java SE 1.5.0中创建带有byte[]输入的java.sql.Blob对象?

2022-09-02 12:17:02

我想从byte[]输入创建一个Blob对象,以使用更新表。在 J2SE 6 中,我们有 java.sql.Connection#createBlob() 来完成此操作。J2SE 1.5.0 中是否有类似的功能?在 J2SE 1.5.0 中使用数据更新 BLOB 类型列的最佳方法是什么?PreparedStatement#setBlob()byte[]


答案 1

使用串行字节的示例

import java.sql.Blob;
import javax.sql.rowset.serial.SerialBlob;

byte[] byteArray = .....;
Blob blob = new SerialBlob(byteArray);

答案 2

您完全不必担心创建 Blob 对象。将它们视为数据库上的 blob,并在 Java 中将其视为 blob。例如:byte[]

@Entity
@Table(name = "some.table")
public class MyEntity
{
    @Id
    int myId;

    @Lob
    byte[] myBlob;

    // snip getters & setters
}

如果您真的打算自己创建实例,则可以使用 SerialBlob 实现:Blob

byte[] bytes = ...;
Blob myBlob = new SerialBlob(bytes);

推荐