为什么会从数据库中看图片会卡死机的???

mayi 2011-11-28 04:53:21
我先把图片存进数据库SQL2000 然后从数据库中查询图片并显示 却发现很容易死机,而且360的网络监控显示上传下载都达到了十几MB每秒啊!! 我的神啊!! 这个牛逼的速度 就等于是硬盘传输速度了啊!!



一下是我的代码:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.io.InputStream"%>

<jsp:useBean id="db" class="abc.A"></jsp:useBean>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">

</head>

<body>
<%
//获得id号!!
String id= request.getParameter("id");
String sql="select pic from img2 where id=4";
//连接查询!!
ResultSet rs=db.getResult(sql);
//输出
while(rs.next()){
response.setContentType("image/jpeg");//设置返回图像的类型

ServletOutputStream sout=response.getOutputStream();//声明ServletOutputStream的对象实例

InputStream in=rs.getBinaryStream(1);//获取二进制输入流

byte b[]=new byte[0x7a120];//创建byte数组用作缓冲

for(int i=in.read(b);i!=-1;){
sout.write(b);//向输出流中写入返回页面的内容
in.read(b);//读取输入流的数据
}
//输出缓冲 并关闭输入流
sout.flush();
sout.close();

}
%>

<center>
<form action="Lookimg.jsp" method="get">
id号:
<input type="text" name="id" /> <br />
<input type="submit" value="提交" />
</form>
</center>


</body>
</html>




我想知道的是: 我在浏览器里能从数据库里调出图片来 并能看到 但是就是很容易爆内存 最后不得不关掉它!!! 而且360的网络监控器也显示 它一直在上传和下载 速度达到了十几 二十几MB 很奇怪啊!! 我明明不是调用了

sout.flush();
sout.close();

啊,怎么就不起作用呢??、
...全文
85 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mayi 2011-11-29
  • 打赏
  • 举报
回复
买的那本《jsp数据库高级应用》坑爹啊! 他说主流有两种 一种是存地址 另一种是存图片! 哎。。。。。


休谱诺斯 2011-11-29
  • 打赏
  • 举报
回复
因为你是读流再写流啊,肯定是这个代码占用了过多的内存,最好是做上传图片,在数据库存图片的地址
wnf2009 2011-11-29
  • 打赏
  • 举报
回复
存路径啊。。。数据库里存图片的是只有在oracle干过,sqlserver没干过
langyuziyou16 2011-11-29
  • 打赏
  • 举报
回复
因为数据库放图片本来就会死机。

存路径是正解。
哎呦喂哈 2011-11-28
  • 打赏
  • 举报
回复
数据库中不都是存路径的么么???

81,092

社区成员

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

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