对象属性有Blob类型;
而Blob需在输入流中读取;
InputStream in = new FileInputStream(url.getFile());
Blob bookPic = lobHelper.createBlob(in, in.available());
book.setBookPic(bookPic);
book2.setBookPic(bookPic); 如对象bookPic第二次使用的时候以无法再从in 中读取信息,因此报错 改进方法: 重新获取一次in 或使用 in.mark(int)与 in.reset() 但是FileInputStream流对象此方法无效 因此可改用 BufferedInputStream 如:
LobHelper lobHelper = session.getLobHelper();InputStream in = new BufferedInputStream(new FileInputStream(this.getClass().getResource("/j.jpg").getFile()));in.mark(in.available());
Blob bookPic = lobHelper.createBlob(in, in.available()); book.setBookPic(bookPic);//调用流的reset()in.reset();book2.setBookPic(bookPic);
具体reset() 与mark(int)使用介绍可查看其它介绍 因此在处理这类特殊对象的时候应由其要注意这种细节
时间: 2024-12-15 01:56:57