Spring-将图像作为字节数组存储在数据库中,并检索它们

时间:2019-05-05 15:06:15

标签: java android spring

因此,我正在使用android应用程序,您可以在其中拍照并保存在后端。在后端,保存图片的实体是这样的:

@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ApplicationUser {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Lob
    private byte[] imageBytes;
}

从我的android应用程序中,我得到一张图片,获取其位图,将其压缩为字节数组,然后将其发送到后端。当字节数组到达服务器时,它看起来像这样:{-1, 30, 50 ...},但是当它保存到数据库中时,它像字符串一样被保存,就像这样:

"imageBytes": "/9j/4AAQSkZJRgABAQAAAQABAAD/....

像这样保存字节数组是否正常? @Lob在这样做吗?主要问题:

  • 当我在我的Android应用程序中检索此String(我期望是一个字节数组)时,如何将其转换为byte []数组,以便可以将其转换为位图,然后转换为图像?

1 个答案:

答案 0 :(得分:0)

有两种类型的LOB:二进制LOB(BLOB)和字符LOB(CLOB)。

您可能想使用BLOB:

@Lob
@Column(name = "image_bytes", columnDefinition="BLOB")
private byte[] imageBytes;