java对Oracle的blob字段怎么处理????????

nonametxt 2004-07-13 04:39:55
我上传图片等二进制文件存到Oracle817中去,听大家说用BLOB字段可以,可是我西面的程序执行半小时都没有结果,为何???
程序在执行到-----16.5就打瞌睡,没有异常,也没有结果!!

for(int i=0;i<smtUp.getFiles().getCount();i++){
//这里不用判断文件是否已经上传(上面的程序里有了)
com.jspsmart.upload.File _thisFile = smtUp.getFiles().getFile(i);
System.out.println("-------------------"+GSObj.getSysTime()+"-------------------------------10");
//取得上载的文件的文件名
String _thisFileName = _thisFile.getFileName();
System.out.println("-------------------"+GSObj.getSysTime()+"-------------------------------11");
String _thisFileSize = ""+_thisFile.getSize();
System.out.println("-------------------"+GSObj.getSysTime()+"-------------------------------12");
String trace = SysService.service.temp_dir+"T"+(int)(Math.random()*1000)+(int)(Math.random()*1000)+_thisFileName;
_thisFile.saveAs(trace,smtUp.SAVE_PHYSICAL);
System.out.println("-------------------"+GSObj.getSysTime()+"-------------------------------12");
java.io.File Temp_file = new java.io.File(trace);
System.out.println("-------------------"+GSObj.getSysTime()+"-------------------------------13");
java.io.FileInputStream Temp_fis = new java.io.FileInputStream(Temp_file);
java.sql.Connection conn = ((GSData)data).getConn();
//conn.setAutoCommit(true);
System.out.println("-------------------"+GSObj.getSysTime()+"-------------------------------");
String sql = "INSERT INTO v_moudles(ID,V_ID,F_NAME,DESCRIPTION,VISION,FILE_SIZE,PATH,SYS_TIME,B_DATA,DEL_FLAG) VALUES(?,?,?,?,?,?,?,?,?,?)";
java.sql.PreparedStatement prestmt=conn.prepareStatement(sql);
System.out.println("-------------------"+GSObj.getSysTime()+"-------------------------------14");
prestmt.setString(1,i+"");
prestmt.setString(2,id);
prestmt.setString(3,_thisFileName);
prestmt.setString(4,desc[i]);
prestmt.setString(5,vision[i]);
prestmt.setString(6,_thisFileSize);
prestmt.setString(7,path[i]);
prestmt.setString(8,GSObj.getSysTime());
System.out.println("-------------------"+GSObj.getSysTime()+"-------------------------------15");
prestmt.setBinaryStream(9,Temp_fis,(int)Temp_file.length());
//prestmt.setBinaryStream(9,null,0);
System.out.println("-------------------"+GSObj.getSysTime()+"-------------------------------16");
prestmt.setString(10,"0");
//提交
System.out.println("-------------------"+GSObj.getSysTime()+"-------------------------------16.5");
prestmt.executeUpdate();
System.out.println("-------------------"+GSObj.getSysTime()+"-------------------------------17");
conn.commit();
System.out.println("-------------------"+GSObj.getSysTime()+"-------------------------------18");
//关闭资源
prestmt.close();
System.out.println("-------------------"+GSObj.getSysTime()+"-------------------------------19");
conn.close();
Temp_fis.close();
//Temp_file.close();
System.out.println("-------------------"+GSObj.getSysTime()+"-------------------------------20");
}
...全文
236 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nonametxt 2004-07-13
  • 打赏
  • 举报
回复
楼上的大侠多谢了,现在问题解决,只是不知道问题原因.
管不了那么多,只知其然,不知所以然也够了

给分!
sagittarius1979 2004-07-13
  • 打赏
  • 举报
回复
先插入一个恶empty-blob,然后把这个empty-blob取出来,再把你要插入的文件已字节的方法往里写.
搜索一下以前的帖子就有一些.
nonametxt 2004-07-13
  • 打赏
  • 举报
回复
对了我在tomcat下调的,实际上我单独运行这段程序也不行,卡就卡在
prestmt.executeUpdate();
这句话上!

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧