现在单个BLOB字段查询和显示都没有问题,但是需要一个过渡页面。
问题是,这种方法每显示一张图片都要访问一次数据库,而我的页面中需要显示多张图片,还有其它文本。
如果每张图片都访问一次数据库,效率会低很多。本来一条语句就都可以查询出来。
请教高手给个解决方案
------解决方案--------------------------------------------------------
没弄过,帮顶
------解决方案--------------------------------------------------------
查一次,放内存中呢 然后读的时候从内存中读?
------解决方案--------------------------------------------------------
你的问题我也类似遇到过,就是考虑效率问题,最后把图片放在了项目的根目录下了,数据库里只存放路径。
GOOD LUCK......
------解决方案--------------------------------------------------------
原则上,每个图片读取和显示都需要一次请求,要访问一次数据库。你这样做确实麻烦了,用缓存之类的也有许多麻烦事。
------解决方案--------------------------------------------------------
你可以把所有的图片都查出来,然后存在map里面,根据某个特定的KEY存起来。需要显示的时候指定这个KEY就行了。
------解决方案--------------------------------------------------------
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专门用来存放图片的。
------解决方案--------------------------------------------------------
答案是缓存。你让浏览器缓存你的图片,这样可以避免每次都来请求。
具体参考
http响应Last-Modified和ETag
http://www.iwms.net/n2029c12.aspx