如何使用byte 输入在Java SE 1.5.0中创建java.sql.Blob对象?

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

一个例子,使用SerialBlob :

 import java.sql.Blob; import javax.sql.rowset.serial.SerialBlob; byte[] byteArray = .....; Blob blob = new SerialBlob(byteArray); 

您根本不必担心创建Blob对象。 将它们视为数据库上的blob,以及Java中的byte[] 。 例如:

 @Entity @Table(name = "some.table") public class MyEntity { @Id int myId; @Lob byte[] myBlob; // snip getters & setters } 

如果您真的想自己创建一个Blob实例,可以使用SerialBlob实现:

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

您不需要实际创建Blob本身。 在执行预准备语句时,在设置blob参数时使用ByteArrayInputStream作为参数。