问答详情
源自:3-4 [Hibernate单表操作] 对象类型

Hibernate怎么向Oracle里面存储blob图片文件呢?

照着视频敲的,但是把mysql数据库改成了Oracle,之前不加图片都可以,

Students s = new Students(3,"张三","男",new Date(),"厦门");
        //先获得照片文件
        File file = new File("d:"+File.separator+"panda.jpg");
        //获得照片文件的输入流
        InputStream input = new FileInputStream(file);
        //创建一个Blob对象
        Blob image = Hibernate.getLobCreator(session).createBlob(input,input.available());
        //设置照片属性
        s.setPicture(image);
        session.save(s);


提问者:迷失de章鱼 2016-12-22 18:09

个回答

  • 神乐的比丘秦犬
    2016-12-25 01:30:21

    hibernate读写oracle中blob字段的时候要做特殊操作,因为Blob自身有一个cursor,你必须使用cursor对blob进行操作,因而你在写入Blob之前,必须获得cursor才能进行写入,获得Blob的cursor需要你先插入一个empty的blob,即首先要从数据库中查出这blob字段 ,然后给他清空 ,再通过数据流方式写入新的