java对Oracle的blob字段怎么处理????????
我上传图片等二进制文件存到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");
}