我想知道在 hibernate 的帮助下存储图像的最佳方式是什么(进入 MySQL) 我有这个类映射
@Entity
@Table(name = "picture")
public class PictureEntity implements Serializable {
@Id
@Column(name = "id")
@GeneratedValue
private int id;
@Column(name = "format", length = 8)
private String format;
//@Basic(fetch = FetchType.LAZY)
@Lob
@Column(name = "context", nullable = true, columnDefinition = "mediumblob")
private java.sql.Blob myBlobAttribute; // or byte[] no diff
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "branch_fk", referencedColumnName = "id", nullable = false)
private BranchEntity branch;
此外,我还有 PictureDAO;我想知道我应该如何实现 My PictureDAO 来保存和检索图像。
最佳答案
字节数组的版本很简单。
public class PictureEntity implements Serializable {
private byte[] imageBytes;
public BufferedImage getImage() {
InputStream in = new ByteArrayInputStream(imageBytes);
return ImageIO.read(in);
}
public void setImage(BufferedImage image) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(image, "PNG" /* for instance */, out);
imageBytes = out.toByteArray();
}
}
关于java - 通过 Hibernate 存储和检索图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1177702/