写入blob字段

import java.io.*;
import java.sql.*;

import oracle.jdbc.*;
import oracle.sql.*;

/**
 * <p>名称: BLOBWrite.java </p>
 * <p>说明:
 * 业务规则:
 * 写入blob字段
 * </p>
 * <p>版权: Copyright (c) 2006</p>
 * <p>版权所有: 北大青鸟软件工程有限公司</p>
 * @author 王世元
 * @version 1.0
 */

public class BLOBWrite {
  public static void main(String[] args) {
    Connection con = null;
    try {
      //连接字串
      Class.forName("oracle.jdbc.driver.OracleDriver");
     
      //数据库地址
      String url = "jdbc:oracle:thin:@192.168.100.100:1521:wangsy";

      //创建连接
      con = DriverManager.getConnection(url, "wangsy", "wangsy");

      //取消自动提交
      con.setAutoCommit(false);

      Statement stmt = con.createStatement();
     
      //使用EMPTY_BLOB(),插入一个空值
      String sql = "insert into item(name,fileblob) values('" + "first"
          + "'," + "EMPTY_BLOB())";

     stmt.executeUpdate(sql);

      //使用"for update"得到表的写锁
       sql = "select fileblob from item where name='" + "first" + "' FOR UPDATE";
      ResultSet rs = stmt.executeQuery(sql);

      BLOB blob = null;
     
      //建立输入流,插入的字串信息,也可从文件获得
      String input = "cccccccccc";

      while (rs.next()) {
        blob = ( (OracleResultSet) rs).getBLOB("fileblob");

        //生成输入输出流
        BufferedOutputStream out = new BufferedOutputStream(blob.
            getBinaryOutputStream());
        BufferedInputStream in = new BufferedInputStream(new
            ByteArrayInputStream(input.getBytes()));

        int c;
        //向此BLOB对象中写入数据
        while ( (c = in.read()) != -1) {
          out.write(c);
        }

        //关闭输入,输出流
        in.close();
        out.close();

        //提交
        con.commit();
       
        //关闭连接
        con.close();
      }
    }
    catch (Exception ex) {
      try {
        con.rollback();
      }
      catch (SQLException ex1) {
        System.out.println(ex1.getMessage());
      }
    }
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值