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

来源:3-4 [Hibernate单表操作] 对象类型

迷失de章鱼

2016-12-22 18:09

照着视频敲的,但是把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);


写回答 关注

1回答

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

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

    暮暮701 回复风中呐喊的幽...

    解决了吗?我有同样的问题?

    2017-08-03 09:40:02

    共 2 条回复 >

Hibernate初探之单表映射

Java持久化框架Hibernate入门教程,掌握Hibernate基本概念

74810 学习 · 793 问题

查看课程

相似问题