照着视频敲的,但是把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);
hibernate读写oracle中blob字段的时候要做特殊操作,因为Blob自身有一个cursor,你必须使用cursor对blob进行操作,因而你在写入Blob之前,必须获得cursor才能进行写入,获得Blob的cursor需要你先插入一个empty的blob,即首先要从数据库中查出这blob字段 ,然后给他清空 ,再通过数据流方式写入新的