OOO,没办法吗?我试着把一个文件对象写到数据库中,可这个文件对象只存了文件的路径,并没有保存文件的内容,请高人指点~~

解决方案 »

  1.   

    没有做过,但肯定要用blob或clob .自己查查资料 ..
      

  2.   

    我觉得你在CMP里面怎么能够控制从文件中读取保存到数据库中这个步骤只能通过上面一层的session bean来实现,应该可以将你那个字段
    映射成为InputStream的,这样你就可以将文件读取进来并传给CMP了
      

  3.   

    感谢老大,我是这样写的
    File file = new File("文件名");
    myBean.setData(file);
    在CMP中data的类型为Object;我是不是该这样
    InputStream file = new FileInputStream("文件名");
    myBean.setDate(file);
    ??
      

  4.   

    鸟人这么帅,做这么难的东东.以前我旁边那个人做过,可惜他不知去向了,
    我只记得大致意思就是把文件转成字节,然后保存,根上面的kofwr(搭补流二)说得一样.
    具体怎么做我可就不知晓了:@
    搞定了别忘了教教我!:>
      

  5.   

    可以试一试这个思路:
    将这个文件包装成一个文件对象,然后序列化到数据库中!
    读取时,用ResultSet 的 getASCiiStream() 提取,然后用ObjectInputStream包装,读出文件。
    不要直接使用IO流,CMP对此是禁止使用的
      

  6.   

    多谢名位老大的参与,终于搞定,我把data的类型改为byte[],然后写就没问题了,
    很奇怪的是我好像记得CMP要字段的类型都必须是可序列化的(??),byte[]不符合吧
    我用的是JBoss,数据库是SqlServer2000,数据库中对应字段的类型是image,
    用的是Local接口,读写都可以,还望大侠出来解惑 ...
    // 写到数据库中
    File file = new File("D:/temp_1053396038652_Photo003.jpg");
    InputStream input = new FileInputStream(file);
    byte[] data = new byte[(int)file.length()];
    input.read(data);
    object.setData(data);
    data = null;
    // 读出生成文件
      file = new File("D:/" + object.getId());
      OutputStream output = new FileOutputStream(file);
      output.write(object.getData());
      output.close();to:buick555
    我现在没用流,也没办法用,可把文件读出后全放在内存中是不是很危险(特别文件大的时候)?
      

  7.   

    可能image支持byte[]吧!或者就需要byte[]类型的
    你说呢?