求助oracle数据库 BLOB类型图片 中JSP页面显示问题

和稀泥 2010-07-20 11:13:08
现在单个BLOB字段查询和显示都没有问题,但是需要一个过渡页面。

问题是,这种方法每显示一张图片都要访问一次数据库,而我的页面中需要显示多张图片,还有其它文本。

如果每张图片都访问一次数据库,效率会低很多。本来一条语句就都可以查询出来。

请教高手给个解决方案
...全文
210 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
space_Wind 2010-07-20
  • 打赏
  • 举报
回复
你的问题我也类似遇到过,就是考虑效率问题,最后把图片放在了项目的根目录下了,数据库里只存放路径。
GOOD LUCK......
sligner 2010-07-20
  • 打赏
  • 举报
回复
查一次,放内存中呢 然后读的时候从内存中读?
xiaochengfu1 2010-07-20
  • 打赏
  • 举报
回复
没弄过,帮顶
ncowboy 2010-07-20
  • 打赏
  • 举报
回复
答案是缓存。你让浏览器缓存你的图片,这样可以避免每次都来请求。

具体参考
http响应Last-Modified和ETag
http://www.iwms.net/n2029c12.aspx


[Quote=引用楼主 zhtw512 的回复:]
现在单个BLOB字段查询和显示都没有问题,但是需要一个过渡页面。

问题是,这种方法每显示一张图片都要访问一次数据库,而我的页面中需要显示多张图片,还有其它文本。

如果每张图片都访问一次数据库,效率会低很多。本来一条语句就都可以查询出来。

请教高手给个解决方案
[/Quote]
lxone987 2010-07-20
  • 打赏
  • 举报
回复
vo = VO_MAP.get(vo.getCusPicId()) == null ? new IdValidatorVo() : (IdValidatorVo)VO_MAP.get(vo.getCusPicId());
if(null == vo.getPositiveImg() || vo.getPositiveImg().length == 0){
return null;
}
OutputStream op = getResponse().getOutputStream();
op.write(vo.getPositiveImg());
op.flush();
op.close();
我的写法是这样的。这个VO_MAP专门用来存放图片的。
lxone987 2010-07-20
  • 打赏
  • 举报
回复
你可以把所有的图片都查出来,然后存在map里面,根据某个特定的KEY存起来。需要显示的时候指定这个KEY就行了。
loveunittesting 2010-07-20
  • 打赏
  • 举报
回复
原则上,每个图片读取和显示都需要一次请求,要访问一次数据库。你这样做确实麻烦了,用缓存之类的也有许多麻烦事。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧