繁体   English   中英

Java 将 Byte[] 转换为 Blob

[英]Java Convert Byte[] into Blob

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

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

错误消息总是将 blob 类型更改为串行 blob。 如果我将其更改为串行 blob,我会收到一条错误消息,指出字符串对于列来说太长。

如果我使用代码

        byte[] byteData = encodedImg.getBytes("UTF-8");//Better to specify encoding
        Blob blobs = (Blob) pprepo.createBlob();
       blobs.setBytes(1, byteData);

我收到错误消息

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

这是我的 class

    private Blob image;

   public Blob getImage(String string) {
   return image;
   }

   public void setImage(Blob image) {
   this.image = image;
   }

所以我不确定 go 的其他位置,因为似乎没有任何效果。 以防万一我使用存储库作为我的数据库连接并且我试图将用户输入的多部分文件保存到我的数据库中。

检查数据库中列的大小。 似乎将其设置为varbinary(100)之类的东西,并且您正在尝试发布字节长度大于字段限制的内容。 例如。 你的字段是varbinary(124) 因此错误?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM