为了账号安全,请及时绑定邮箱和手机立即绑定

正在回答

5 回答

570b4e9a0001c2b905000046.jpg

570b4e9a0001a11005000055.jpg

测试时没有出现错误,是写入的时候没有写入吗?


0 回复 有任何疑惑可以回复我~
#1

ned_dp

兄弟,你的问题解决了吗,我的也是你这种情况
2016-04-29 回复 有任何疑惑可以回复我~
#2

慕函数9281397 回复 ned_dp

是不是用的oracle?
2016-10-28 回复 有任何疑惑可以回复我~

代码是没有错的,你应该看看hibernate.cfg.xml文件当中hbm2ddl属性值是否为update,如果是create,一运行代码表中的数据就被删了,当然读不出来了

0 回复 有任何疑惑可以回复我~
#1

cenyetong 提问者

我执行testWriteBlob方法时是create,然后读取照片时即testReadBlob时是update的,理论上没事啊
2016-04-10 回复 有任何疑惑可以回复我~
#2

沉寂的蜗牛 回复 cenyetong 提问者

具体描述一下你的问题吧,执行testWriteBlob时有问题吗?看看数据库中是否有你设定的图片,要打开图片看到才算;还有执行testReadBlob时读不出来报的错是什么?输出流的路径中电脑上有d盘吗?Blob导入的是sql下的包吗?。。。
2016-04-11 回复 有任何疑惑可以回复我~
#3

cenyetong 提问者 回复 沉寂的蜗牛

测试时没有出错啊,只是写出来的图片内容为空
2016-04-11 回复 有任何疑惑可以回复我~
@Test
	public void testWriteBlob()throws Exception{
		Students s=new Students(1,"jack","男",new Date(),"广州");
		//先获得照片文件
		File f=new File("d:"+File.separator+"games_control.jpg");
		//获取文件的输入流
		InputStream input=new FileInputStream(f);
		//创建一个Blob对象
		Blob image=Hibernate.getLobCreator(session).createBlob(input,input.available());
		//设置图片属性
		s.setPicture(image);
		//保存学生
		session.save(s);
	}
	
	@Test
	public void testReadBlob()throws Exception{
		Students s=(Students)session.get(Students.class, 1);
		//获取Blob对象
		Blob image=s.getPicture();
		//获取照片的输入流
		InputStream input=image.getBinaryStream();
		//创建输出流
		File f=new File("d:"+File.separator+"dest.jpg");
		//获取输出流
		OutputStream output=new FileOutputStream(f);
		//创建缓冲区
		byte[] buff=new byte[input.available()];
		input.read(buff);
		output.write(buff);
		input.close();
		output.close();
	}


0 回复 有任何疑惑可以回复我~

贴代码看看..

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Hibernate初探之单表映射
  • 参与学习       74806    人
  • 解答问题       793    个

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

进入课程

图片的读取

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信