我需要把内存中的image文件直接保存在数据库中的image列中.
   sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
       String condition="update basic_info set 照片 =?";
       PreparedStatement pstmt=con.prepareStatement(condition);我的问题是,如何把一个image类型转化为一个inputstream类型,以便使用
pstmt.setBinaryStream(1,is1,is1.available());这个函数.当然有其他的保存方法也好!!
ps:提取的方法也希望能一并给出!!
再ps:顶者有分!!!

解决方案 »

  1.   

    把image文件读出来作为流文件不就行了吗?不过本人用的不是java语言,对这个不太熟悉。帮你顶一下!
      

  2.   

    我自己顶,嘿!!
    重申一下把image直接存入数据库中的image列。谢谢各位了!
      

  3.   

    如果用STRUTS就很方便了,只要设置multiple就可以当做流读进来,然后直接保存到数据库里
      

  4.   

    sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
           String condition="update basic_info set 照片 =?";
           PreparedStatement pstmt=con.prepareStatement(condition);
           int iw = values.getWidth(null);
    int ih = values.getHeight(null);
    int pixels[];
    pixels = new int[iw*ih];
    try
    {
    PixelGrabber pg = new PixelGrabber(values,0,0,iw,ih,pixels,0,iw);
    pg.grabPixels();
    }
    catch(InterruptedException e){}
    现在我想先把image类型转换成一个int数组的形式
    能不能可以把一个数组转化成stream类型呢?
    期待各位高手解答!!
    我今后会回去狂啃STRUTS的!!谢谢
      

  5.   

    读取到byte 数组里 然后将数组存入不行么
      

  6.   

    回kurtjob() 我是可以先保存到数组里,但是pstmt.setBinaryStream(1,is1,is1.available());
    只能存入流数据。所以最终那个sql语句还是实现不了
    不过,您到是提醒了我,是不是有setBinary的函数可以代替setBinaryStream写入一个数组呢?
    我倒是可以试一下!
      

  7.   

    回arkwrightzhn(阿克赖特qq673188423,[email protected]
    我是要存到sql server里的image项
    您指的blob是不是是指sql server里的binary或var binary项?
    其实image就是一个大二进制项吧