Cic*_*chy 8 java spring hibernate blob
由于如何从JSP页面中的数据库检索和显示图像,我找到了从db/blob检索图像的非常好的解决方案?
但这是在每个图像请求上使用JDBC连接的解决方案.
我正在使用Spring 3注释和Hibernate 3.
我尝试通过我的'imageService'做类似的事情,它由ImageServlet类中的注释自动装配,但是我得到了nullPointerException,这意味着可能没有依赖注入设置imageService.
有什么方法可以解决这个问题吗?我不喜欢在图像请求上建立单个jdbc连接.
我希望您将图像作为BLOB类型存储在表中(如果没有尝试这样做,因为这是最佳实践).让我们假设您有一个Person
类,其中包含image
存储在数据库中的人员.如果要映射它,只需在保存图像的人员POJO中添加一个属性即可.
@Column(name="image")
@Blob
private Blob image;
Run Code Online (Sandbox Code Playgroud)
显示时,将其转换为a byte[]
并显示.
private byte[] toByteArray(Blob fromImageBlob) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
return toByteArrayImpl(fromImageBlob, baos);
} catch (Exception e) {
}
return null;
}
private byte[] toByteArrayImpl(Blob fromImageBlob,
ByteArrayOutputStream baos) throws SQLException, IOException {
byte buf[] = new byte[4000];
int dataSize;
InputStream is = fromImageBlob.getBinaryStream();
try {
while((dataSize = is.read(buf)) != -1) {
baos.write(buf, 0, dataSize);
}
} finally {
if(is != null) {
is.close();
}
}
return baos.toByteArray();
}
Run Code Online (Sandbox Code Playgroud)
您可以查看以下示例以了解有关它的更多信息.
正如您所看到的,有多种方法可以做到这一点.选择适合你的.
归档时间: |
|
查看次数: |
15098 次 |
最近记录: |