CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

小弟想直接上传图片到Oracle的Blob中,诸位仁兄给点思路或提示或资料或源码

楼主m2002(头回出差)2002-04-17 13:46:48 在 Java / J2SE / 基础类 提问

....... 问题点数:100、回复次数:7Top

1 楼hegum(大概)回复于 2002-04-17 14:01:53 得分 100

我看到的哈  
  。。。。。  
  import   java.sql.*;  
  import   java.io.*;  
  import   oracle.sql.*;  
  import   oracle.jdbc.driver.*;  
   
  public   class   InsertBlob   {  
  public   static   int   insertBlobData(String   fileDate,   String   fileName,   String   filePath)   throws   Exception   {  
  int   retVal   =   0;  
  Connection   conn   =   null;  
  PreparedStatement   stmt   =   null;  
  ResultSet   rs   =     null;  
  InputStream   fin   =   null;  
  OutputStream   fout   =   null;  
  try   {  
  DriverManager.registerDriver(new   oracle.jdbc.driver.OracleDriver());  
  conn   =   DriverManager.getConnection("jdbc:oracle:thin:@graycell:1521:o8i",   "internal",   "oracle");  
  conn.setAutoCommit(false);  
  stmt   =   conn.prepareStatement("INSERT   INTO   tblBlobDemo   VALUES   (seqBlobDemoID.NextVal,   ?,   ?,   empty_blob())");  
  stmt.setString(1,   fileDate);  
  stmt.setString(2,   fileName);  
  stmt.execute();  
  stmt.clearParameters();  
  stmt   =   conn.prepareStatement("SELECT   FileData   FROM   tblBlobDemo   WHERE   FileName   =   ?   FOR   UPDATE");  
  stmt.setString(1,   fileName);  
  rs   =     stmt.executeQuery();  
  if(rs.next())   {  
  BLOB   blob   =   ((OracleResultSet)rs).getBLOB("FileData");  
  fout   =   blob.getBinaryOutputStream();  
  File   f   =   new   File(filePath);  
  fin   =   new   FileInputStream(f);  
  byte[]   buffer   =   new   byte[blob.getBufferSize()];  
  int   bytesRead   =   0;  
  while((bytesRead   =   fin.read(buffer))   !=   -1)   {  
  fout.write(buffer,   0,   bytesRead);  
  }  
  blob   =   null;  
  f   =   null;  
  buffer   =   null;  
  }  
  stmt.clearParameters();  
  }  
  catch(SQLException   ex)   {  
  ex.printStackTrace();  
                                                  retVal   =   1;  
  }  
  catch(FileNotFoundException   ef)   {  
  ef.printStackTrace();  
                                                  retVal   =   2;  
  }  
  catch(Exception   e)   {  
  e.printStackTrace();  
                                                  retVal   =   3;  
  }  
   
  finally   {  
  try   {  
  fin.close();  
  fout.close();  
  conn.commit();  
  stmt.close();  
  conn.close();  
  fin   =   null;  
  fout   =   null;  
  rs   =   null;  
  conn   =   null;  
  stmt   =   null;  
  }  
  catch(SQLException   e)   {  
  retVal   =   1;  
  }  
  }  
  return   retVal;  
  }  
  }Top

2 楼hegum(大概)回复于 2002-04-17 14:02:29 得分 0

ReadBlob    
  ****************  
  import   java.sql.*;  
  import   java.io.*;  
  import   java.lang.String;  
  import   oracle.sql.*;  
  import   oracle.jdbc.driver.*;  
   
  public   class   ReadBlob   {  
  public   int   extractBlob(int   fileId,   String   fileName,   String   absPath)   throws   Exception   {  
  int   retVal   =   0;  
  Connection   conn   =   null;  
  PreparedStatement   stmt   =   null;  
  InputStream   in   =   null;  
  OutputStream   out   =   null;  
  BLOB   blob   =   null;  
  ResultSet   rs   =   null;  
  try   {  
  DriverManager.registerDriver(new   oracle.jdbc.driver.OracleDriver());  
  conn   =   DriverManager.getConnection("jdbc:oracle:thin:@graycell:1521:o8i",   "internal",   "oracle");  
  conn.setAutoCommit(false);  
  stmt   =   conn.prepareStatement("Select   FileData   FROM   tblBlobDemo   WHERE   FileId   =   ?");  
  stmt.setInt(1,   fileId);  
  rs   =   stmt.executeQuery();  
  if(rs.next())   {  
  blob   =   ((OracleResultSet)rs).getBLOB("FileData");  
  }  
  in   =   blob.getBinaryStream();  
  String   filePath   =   absPath   +   fileName;  
  out   =   new   FileOutputStream(filePath);  
  int   bufferSize   =   blob.getBufferSize();  
  byte[]   buffer   =   new   byte[bufferSize];  
  int   bytesRead   =   0;  
  while   ((bytesRead   =   in.read(buffer))   !=   -1)   {  
  out.write(buffer,   0,   bytesRead);  
  }  
                                                  stmt.clearParameters();  
  buffer   =   null;  
  }  
  catch(SQLException   ex)   {  
  ex.printStackTrace();  
  retVal   =   1;  
  }  
  catch(Exception   e)   {  
  e.printStackTrace();  
  retVal   =   2;  
  }  
   
  finally   {  
  try   {  
  in.close();  
  out.close();  
  conn.commit();  
  stmt.close();  
  conn.close();  
  in   =   null;  
  blob   =   null;  
  rs   =   null;  
  out   =   null;  
  conn   =   null;  
  stmt   =   null;  
  }  
  catch(SQLException   e)   {  
  retVal   =   1;  
  }  
  }  
  return   retVal;  
  }  
  }Top

3 楼m2002(头回出差)回复于 2002-04-17 16:07:44 得分 0

多谢,先研究一下Top

4 楼m2002(头回出差)回复于 2002-04-17 16:10:28 得分 0

通过Http提交的方式Top

5 楼m2002(头回出差)回复于 2002-04-17 16:54:18 得分 0

救命Top

6 楼hegum(大概)回复于 2002-04-18 09:44:48 得分 0

你是哪里不会啊?Top

7 楼m2002(头回出差)回复于 2002-04-18 20:55:09 得分 0

多谢。送分。Top

相关问题

  • 各位仁兄,谁有MasteringJavabeans的例子程序源码?
  • 哪位仁兄,研究过FASTREPORT的源码,请进来!!
  • 问:哪位仁兄有treeview控件的 源码?
  • 哪位仁兄有JAVA实现的多叉树源码?部分的也行!
  • Oracle中照片压缩问题?请各位仁兄解决.
  • 哪里可以搞到DOA(Direct Access Oracle 3.30的源码?
  • 请问哪位仁兄知道www.active.com.cn上的代码是如何隐藏的,我点右键点查看源码不好使呀~~
  • 求援:哪位仁兄可能提供在工作线程里不停地读取UDP数据报的一小段源码,谢谢!
  • 在Oracle中写BLOB字段
  • 有没有哪位仁兄基于oracle搞过空间数据挖掘方面的研究?

关键词

  • oracle
  • jdbc
  • blob
  • stmt
  • retval
  • tblblobdemo
  • bytesread
  • conn
  • fout
  • clearparameters

得分解答快速导航

  • 帖主:m2002
  • hegum

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo