Java将Byte[]转换为Blob



我知道有很多关于如何做到这一点的帖子,但我已经尝试了他们的解决方案,每次我得到一个错误,使我无法编译,我不知道为什么。这些是我尝试过的解决办法。

Blob blob = new javax.sql.rowset.serial.SerialBlob(bytes); 
//next try
Blob b = new SerialBlob(byteData);  

错误信息总是将blob类型更改为Serial blob。如果我将其更改为serial blob,我会得到一个错误消息,说字符串太长,不适合列。

如果我使用代码
byte[] byteData = encodedImg.getBytes("UTF-8");//Better to specify encoding
Blob blobs = (Blob) pprepo.createBlob();
blobs.setBytes(1, byteData);

我得到错误信息

由:org.hibernate.MappingException: Could not determine type for: com.mysql.cj.jdbc引起。Blob, at table: post, for columns: [org.hibernate.mapping.Column(image)]

这是我的类

private Blob image;
public Blob getImage(String string) {
return image;
}
public void setImage(Blob image) {
this.image = image;
}

所以我不确定在这里还能去哪里,因为似乎什么都不起作用。只是在万一我使用存储库作为我的数据库连接,我试图保存用户输入的多部分文件到我的数据库。

检查数据库中列的大小。似乎它被设置为类似varbinary(100)的东西,你试图发布一些字节长度大于字段限制的东西。如。你的场是varbinary(124)。因此出现了错误??

最新更新