用BLOB字段存储。映射XML再增加一byte[]的字段
ACTION里直接取FORM传来的值,写入byte[]。在DAO里,先赋一空值给BLOB字段,然后再将byte[]字段以流的方式写入BLOB字段。就好了。

解决方案 »

  1.   

    高人啊,能不能写的详细点啊,怎么赋空值给blob啊,你说映射xml里在增加一byte[]的字段,在哪里增加啊
      

  2.   

    在VPO类(也有人叫VO类)里增加byte[]字段。
    赋空值
    //插入BLOB空值
    byte[] buffer = new byte[1];
    buffer[0] = 1;
    vpo.setBimage(Hibernate.createBlob(buffer));
    上面的Bimage为BLOB类型的字段
      

  3.   

    我是按照你说的那种方法做的,是不是在赋空值给blob后,然后在将form中的图片写入byte[]中,然后再以流的方式写入到blob字段呢, 如果是这样的话,小弟我的问题就是出在无法用流的方式将图片写入到blob字段中
    高人能不能帮帮忙,把怎么用流的方式写到blob中也详细地讲一下呢,谢谢你了!!!!!!!
      

  4.   

    以weblogic为例
    weblogic.jdbc.vendor.oracle.OracleThinBlob blob = null;
    //重新处理BLOB字段
    blob = (weblogic.jdbc.vendor.oracle.OracleThinBlob) vpo.getBimage();
    if (blob!=null) {
      OutputStream out = blob.getBinaryOutputStream();
      out.write(vpo.getAimage());
      out.flush();
      out.close();
    }
    其中Aimage就是byte[]字段
      

  5.   

    weblogic.jdbc.vendor.oracle.OracleThinBlob blob = null;是什么意思啊,还有啊
    blob = (weblogic.jdbc.vendor.oracle.OracleThinBlob) vpo.getBimage(); 那个
    vpo.getBimage();前面为什么要加(weblogic.jdbc.vendor.oracle.OracleThinBlob)啊
    不加可以吗,还有一个问题就是我用的是eclipse+tomcat,可是我试过了,没有
    OutputStream out = blob.getBinaryOutputStream();这个方法啊,我用blob打点,也点不出
    getBinaryOutputStream();这个方法啊,我以前也看过一篇文章,也是像你刚才教的那么写的,可是没有getBinaryOutputStream();这个方法啊,这是怎么回事啊,
      

  6.   

    weblogic.jdbc.vendor.oracle.OracleThinBlob,这个是weblogic的写法。
    好像也有用ORACLE的写法。你找找看吧。我手头上没有。
      

  7.   

    那我不加那个不行吗,关键就是没有OutputStream out = blob.getBinaryOutputStream();这个方法啊,只有一个blob.getBinaryStream();方法
      

  8.   

    没测试过,临时找到的。
    oracle.sql.BLOB blob = null;
    OutputStream out = blob.getBinaryOutputStream();
      

  9.   

    十分感谢你的帮助,但是你说在vo里增加一个byte[],它是用来存什么的啊,而且你说vpo.setBimage(Hibernate.createBlob(buffer));那是不是还要在vo里放一个blob类型的字段啊 ,那它又是存什么东西的啊
      

  10.   

    数据库是BLOB类型字段Bimage,但是页面上接收过去却是byte[]类型Aimage,所以要用两个类型做转换。就是通过流方式,把Aimage写入到Bimage,也就是递交到数据库了。
    当然如果你这么做,直接把Blob类型处理至数据库,代码会很难看,而且很乱,是可以实现功能的。
    你自己选择吧。
    www.hibernate.org.cn
    这里多看看。
      

  11.   

    也就是说在vo中还要定义一个blob类型的字段,是吗,那定义了两个字段,一个是byte[],一个是blob,都是关于图片的,那他们之间怎么转换啊,怎么用啊
    我比较笨,希望没有让你感到很烦
      

  12.   

    还有,在我的项目中怎么引入不了oracle.sql.BLOB这个啊,怎么能把这个引入啊,在哪引入啊