我将图片以二进制格式写入数据库,并用jsp读出并显示在表格中,但是明明是有多张不同图片,为什么都显示成同一张?
相关代码如下:
 <%sql="select * from Km_Data Where ProdClass='pm1'";
 ResultSet rs=statement.executeQuery(sql);
  while(rs.next()){
     String name=rs.getString("Name");
     String prodclass=rs.getString("ProdClass");
 %>
  <tr>
    <td bgcolor="#efefef" width="20%"><img src="show.jsp?prodclass=<%=prodclass%>" alt=<%=name%>
></td>
    <td bgcolor="#efefef" width="20%"><%=name%></td>
        
  </tr>show.jsp:
........
String prodclass=request.getParameter("prodclass");
..............
 String   sql   =   "select   Img   from   Km_Data   where   ProdClass  = prodclass";   
  ResultSet   rs   =   stmt.executeQuery(sql);   
  if   (rs.next())   
  {   
  in   =   rs.getBinaryStream("Img");  
  
  response.setContentType("image/jpeg");   
  sop   =   response.getOutputStream();   
  int   len;   
  byte[]   buf   =   new   byte[1024];   
  while   ((len   =   in.read(buf,   0,   1024))   !=   -1)   
  {   
  sop.write(buf,   0,   len);   
  }   
  }  
  sop.flush();
  sop.close();   
  in.close();   
  rs.close();   
  stmt.close();   
  conn.close();

解决方案 »

  1.   

    select Img from Km_Data where ProdClass = prodclass
    ======================================================
    你这样做,不是同一张才怪,而且每次都是Km_Data表中第一条记录中的图片
    你根本没有用传入的参数
      

  2.   

    if(rs.next())
    改为while(rs.next())
    就可以了
      

  3.   

    if   (rs.next())  
    当然只显示一次了
    应该用while
      

  4.   

    问题1:String   sql   =   "select   Img   from   Km_Data   where   ProdClass  = prodclass";  
    问题2:if   (rs.next())
      

  5.   

    String   sql   =   "select   Img   from   Km_Data   where   ProdClass  =" + prodclass;
      

  6.   

    String sql = "select Img from Km_Data where ProdClass =" + prodclass;
    再把if(rs.next()) 改成 while(rs.next())
      

  7.   

    兄弟,问你个问题? ProdClass 是图片数据表的唯一标识吗?
    我看你的程序好像是这样的,前段代码是一个循环显示 每条记录,而show.jsp是想取每张图片是不是啊?但是,你每次传进来的参数都是一样的ProdClass,那又是取的第一条,那当然只显示第一张图片啦。传参数的时候,应该把每条数据的唯一标识传过来,例如(ID),然后在show.jsp里面,你再用 String sql = "select Img from Km_Data where ID=" + ID;这样,才算找到你要的图片啊!
      

  8.   

    谢谢各位了!问题解决了,原因:1、sql错误 2、用id控制
    (俺是新手,各位见笑了啊)