码迷,mamicode.com
首页 > 数据库 > 详细

Oracle数据库插入二进制字段数据

时间:2014-09-18 12:49:03      阅读:410      评论:0      收藏:0      [点我收藏+]

标签:style   color   io   os   java   ar   for   文件   数据   

oracle数据库喜欢搞特殊,二进制字段数据不能直接插入,需先再该字段插入oracle函数返回的的初始数据,然后在查询更新该字段。下面以Blob字段类型为例:

1.插入初始数据

  Class.forName("oracle.jdbc.driver.OracleDriver");  
    Connection cn= DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.5:1521:orcl", "qywsbspt", "qywsbspt123999");

  cn.setAutoCommit(false);

  PreparedStatement pst = cn.prepareStatement("insert into t_uploadfile (file_id,file_content) values (?,EMPTY_BLOB())");

  pst.setObject(1,8888);

  pst.excuteUpdate();

2.查询更新该字段

  pst =   cn.prepareStatement("select  file_content  from t_uploadfile  for update where file_id = ? ");

  pst.setObject(1,8888);

  ResultSet rs = pst.excuteQuery();

  BLOB blob = null ; //不是java.sql.Blob,而是oralce.sql.BLOB

  if(rs.next())

    blob = (BLOB)rs.getBlob(1);  //获取该字段

  OutputStream os =blob.getBinaryOutputStream(); //打开操作该字段的流

  InputStream is = ...... //获取要插入的二进制文件的输入流

  int buffer = -1;

  while((buffer = is.read())!=-1){
       os.write(buffer);
      } 

  is.close();

    os.close(); 

  cn.commit();

  rs.close();

  pst.close();

  cn.close();

  

  

Oracle数据库插入二进制字段数据

标签:style   color   io   os   java   ar   for   文件   数据   

原文地址:http://www.cnblogs.com/cyhj/p/3978845.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!