如何利用jsp+hibernate将图片存储的orcale数据库中 用BLOB字段存储。映射XML再增加一byte[]的字段ACTION里直接取FORM传来的值,写入byte[]。在DAO里,先赋一空值给BLOB字段,然后再将byte[]字段以流的方式写入BLOB字段。就好了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 高人啊,能不能写的详细点啊,怎么赋空值给blob啊,你说映射xml里在增加一byte[]的字段,在哪里增加啊 在VPO类(也有人叫VO类)里增加byte[]字段。赋空值//插入BLOB空值byte[] buffer = new byte[1];buffer[0] = 1;vpo.setBimage(Hibernate.createBlob(buffer));上面的Bimage为BLOB类型的字段 我是按照你说的那种方法做的,是不是在赋空值给blob后,然后在将form中的图片写入byte[]中,然后再以流的方式写入到blob字段呢, 如果是这样的话,小弟我的问题就是出在无法用流的方式将图片写入到blob字段中高人能不能帮帮忙,把怎么用流的方式写到blob中也详细地讲一下呢,谢谢你了!!!!!!! 以weblogic为例weblogic.jdbc.vendor.oracle.OracleThinBlob blob = null;//重新处理BLOB字段blob = (weblogic.jdbc.vendor.oracle.OracleThinBlob) vpo.getBimage();if (blob!=null) { OutputStream out = blob.getBinaryOutputStream(); out.write(vpo.getAimage()); out.flush(); out.close();}其中Aimage就是byte[]字段 weblogic.jdbc.vendor.oracle.OracleThinBlob blob = null;是什么意思啊,还有啊blob = (weblogic.jdbc.vendor.oracle.OracleThinBlob) vpo.getBimage(); 那个vpo.getBimage();前面为什么要加(weblogic.jdbc.vendor.oracle.OracleThinBlob)啊不加可以吗,还有一个问题就是我用的是eclipse+tomcat,可是我试过了,没有OutputStream out = blob.getBinaryOutputStream();这个方法啊,我用blob打点,也点不出getBinaryOutputStream();这个方法啊,我以前也看过一篇文章,也是像你刚才教的那么写的,可是没有getBinaryOutputStream();这个方法啊,这是怎么回事啊, weblogic.jdbc.vendor.oracle.OracleThinBlob,这个是weblogic的写法。好像也有用ORACLE的写法。你找找看吧。我手头上没有。 那我不加那个不行吗,关键就是没有OutputStream out = blob.getBinaryOutputStream();这个方法啊,只有一个blob.getBinaryStream();方法 没测试过,临时找到的。oracle.sql.BLOB blob = null;OutputStream out = blob.getBinaryOutputStream(); 十分感谢你的帮助,但是你说在vo里增加一个byte[],它是用来存什么的啊,而且你说vpo.setBimage(Hibernate.createBlob(buffer));那是不是还要在vo里放一个blob类型的字段啊 ,那它又是存什么东西的啊 数据库是BLOB类型字段Bimage,但是页面上接收过去却是byte[]类型Aimage,所以要用两个类型做转换。就是通过流方式,把Aimage写入到Bimage,也就是递交到数据库了。当然如果你这么做,直接把Blob类型处理至数据库,代码会很难看,而且很乱,是可以实现功能的。你自己选择吧。www.hibernate.org.cn这里多看看。 也就是说在vo中还要定义一个blob类型的字段,是吗,那定义了两个字段,一个是byte[],一个是blob,都是关于图片的,那他们之间怎么转换啊,怎么用啊我比较笨,希望没有让你感到很烦 还有,在我的项目中怎么引入不了oracle.sql.BLOB这个啊,怎么能把这个引入啊,在哪引入啊 谈谈苏宁易购面试感受 求教各位朋友,关于spring定时器不执行的问题。 在fitler 中获取 ajax传递的参数 批量插入,需要带回自增主键问题。在MYSQL下正常。SQLSERVER下异常。说返回值是ResultSet不能放到int[]中去。求SQLSERVER 解决办法 数据库连接问题 解救高分oracle知识 请问一个关于JTable的问题 utf-8在jbuilder9编译运行时,jsp原文件中的中文都成乱吗了? 定时任务扫描数据库表数据下发邮件 jbpm6有人用过吗? 安装 tomcat 遇到难题! log4j的问题
赋空值
//插入BLOB空值
byte[] buffer = new byte[1];
buffer[0] = 1;
vpo.setBimage(Hibernate.createBlob(buffer));
上面的Bimage为BLOB类型的字段
高人能不能帮帮忙,把怎么用流的方式写到blob中也详细地讲一下呢,谢谢你了!!!!!!!
weblogic.jdbc.vendor.oracle.OracleThinBlob blob = null;
//重新处理BLOB字段
blob = (weblogic.jdbc.vendor.oracle.OracleThinBlob) vpo.getBimage();
if (blob!=null) {
OutputStream out = blob.getBinaryOutputStream();
out.write(vpo.getAimage());
out.flush();
out.close();
}
其中Aimage就是byte[]字段
blob = (weblogic.jdbc.vendor.oracle.OracleThinBlob) vpo.getBimage(); 那个
vpo.getBimage();前面为什么要加(weblogic.jdbc.vendor.oracle.OracleThinBlob)啊
不加可以吗,还有一个问题就是我用的是eclipse+tomcat,可是我试过了,没有
OutputStream out = blob.getBinaryOutputStream();这个方法啊,我用blob打点,也点不出
getBinaryOutputStream();这个方法啊,我以前也看过一篇文章,也是像你刚才教的那么写的,可是没有getBinaryOutputStream();这个方法啊,这是怎么回事啊,
好像也有用ORACLE的写法。你找找看吧。我手头上没有。
oracle.sql.BLOB blob = null;
OutputStream out = blob.getBinaryOutputStream();
当然如果你这么做,直接把Blob类型处理至数据库,代码会很难看,而且很乱,是可以实现功能的。
你自己选择吧。
www.hibernate.org.cn
这里多看看。
我比较笨,希望没有让你感到很烦