所以我正在开发一个 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 应用程序中检索这个字符串(我希望它是一个字节数组)时,如何将其转换为 byte[] 数组,以便我可以将其转换为位图,然后转换为图像?
最佳答案
LOB 有两种类型:二进制 LOB (BLOB) 和字符 LOB (CLOB)。
您可能想使用 BLOB:
@Lob
@Column(name = "image_bytes", columnDefinition="BLOB")
private byte[] imageBytes;
关于java - Spring - 将图像作为字节数组存储在数据库中并检索它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55993377/