【技巧】Oracle在Blob字段写入的处理(2)

【技巧】OracleBlob字段写入的处理(2)

  

  public static void updateBlob( InputStream instream

  Connection conn

  String table

  String blobColumn

  String keyColumn

  String keyValue)

  throws SQLException IOException

  {

  Statement stmt = null;

  OracleResultSet rs = null;

  BLOB blob = null;

  boolean oldAutoCommit = conn.getAutoCommit();

  StringBuffer sqlBuffer = new StringBuffer();

  try {

  conn.setAutoCommit(false);

  sqlBuffer.append(“select ”);

  sqlBuffer.append(blobColumn);

  sqlBuffer.append(“ from ”);

  sqlBuffer.append(table);

  sqlBuffer.append(“ where ”);

  sqlBuffer.append(keyColumn);

  sqlBuffer.append(“=‘”);

  sqlBuffer.append(keyValue);

  //注意这里的”for update”

  sqlBuffer.append(“’ for update ”);

  stmt = conn.createStatement();

  rs = (OracleResultSet) stmt.executeQuery(sqlBuffer.toString());

  if (!rs.next())

  {

  rs.close();

  stmt.close();

  throw new IllegalArgumentException(

  “no record found for keyValue ‘” + keyValue + “’”);

  }

  blob = rs.getBLOB(1);

  OutputStream outstream = blob.getBinaryOutputStream();

  int bufferSize = blob.getChunkSize();

  byte[] buffer = new byte[bufferSize];

  int bytesRead = -1;

  while ((bytesRead = instream.read(buffer)) != -1)

  {

  outstream.write(buffer 0 bytesRead);

  }

  instream.close();

  outstream.close();

  rs.close();

  stmt.close();

  }

  catch (SQLException e)

  {

  •  
  • 在线报名

 
     姓 名:
     性 别:
     联系电话:
     qq:
    验证码:
 
·报名须知·
点击咨询 点击咨询
点击咨询 点击咨询 点击这里给我发消息
  •  
  • 学员作品
学员作品
Oracle学校 | Oracle学校 | 技术学堂 | Oracle简介 | 关于中心 | 人才加盟 | 联系我们 | 点击咨询
2012Copyright © 北京市大兴区华腾职业技能培训学校 版权所有 友情链接QQ
学校地址:北京市海淀区北三环中路27号 商房大厦六层 马甸桥东(国美电器楼上)
报名热线:400-690-8516 010-82013489 82015141 京ICP备11042126号 京公网安备110102004701