try
{
   Statement st = conn.createStatement();
   ResultSet rs = st.executeQuery("Select * from imageTable ");
   while (rs.next())
   {
InputStream imagedata = rs.getBinaryStream("image");
         idata = new byte[8000];//可以取图像实际长度
int rec = imagedata.read(idata);
ImageIcon mImageIcon = new ImageIcon(idata);
//mTestImageDb.jLImage.setIcon(mImageIcon);
//可以在这儿传送到client
         idata = null;
      }
      rs.close();
      st.close();
    }
    catch (Exception ex )
    {
      ex.printStackTrace();
      return false;
    }

解决方案 »

  1.   

    try
    {
       Statement st = conn.createStatement();
       ResultSet rs = st.executeQuery("Select * from imageTable ");
       while (rs.next())
       {
    InputStream imagedata = rs.getBinaryStream("image");
             idata = new byte[8000];//可以取图像实际长度
    int rec = imagedata.read(idata);
    //ImageIcon mImageIcon = new ImageIcon(idata);
    //mTestImageDb.jLImage.setIcon(mImageIcon);
    //可以在这儿传送到client
             idata = null;
          }
          rs.close();
          st.close();
        }
        catch (Exception ex )
        {
          ex.printStackTrace();
          return false;
        }
      

  2.   

    我不需要在服务器端显示,主要是如何一取出来就传到client端???
    因为我的程序是在服务器和客户端之间建了
    out = new PrintWriter(clientSocket.getOutputStream(), false);
    in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
    如果传图象的话,是不是要用对象流,我这个是不是不行阿?
      

  3.   

    你从数据库中取出图像后(字节数组),就可以通过out传送给client(out.write(idata)),client用in取得数据(in.read())。
      

  4.   

    用 ByteArrayOutputStream然后调用writeTo(out)成员函数。
      

  5.   

    图象是数据,不是对象.try
    {
       Statement st = conn.createStatement();
       ResultSet rs = st.executeQuery("Select * from imageTable ");
       while (rs.next())
       {
        InputStream imagedata = rs.getBinaryStream("image");
             idata = new byte[8000];//可以取图像实际长度
        int rec = imagedata.read(idata);
        //ImageIcon mImageIcon = new ImageIcon(idata);
        //mTestImageDb.jLImage.setIcon(mImageIcon);
        //可以在这儿传送到client     ByteArrayOutputStream b = new ByteArrayOutputStream();
         b.write(idata);
         b.writeTo(out);         idata = null;
          }
          rs.close();
          st.close();
        }
        catch (Exception ex )
        {
          ex.printStackTrace();
          return false;
        }