天天看點

blob字段的修改

public static void blobModify(Connection con, Statement stmt,

String infile, String blobColumnName, String tabName, String id,

String idColumName) throws SQLException {

byte[] b = infile.getBytes();

boolean defaultCommit = con.getAutoCommit();

con.setAutoCommit(false);

ResultSet rs=null;

try {

String sql_sel = "SELECT " + blobColumnName + " FROM " + tabName

+ " WHERE " + idColumName + "='" + id + "' FOR UPDATE";

String sql_up="update mutual set receive=empty_blob() where id='"+id+"'";

//System.out.println("blobModify String sql= "+sql);

stmt.executeUpdate(sql_up);

//con.commit();

rs=stmt.executeQuery(sql_sel);

if (rs.next()) {

//擷取此CLOB對象 

oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob(1);

// System.out.println(clob);

// System.out.println("infile= "+infile);

OutputStream blobWriter = blob.getBinaryOutputStream();

//blob=oracle.sql.BLOB.empty_lob();

blobWriter.write(b, 0, b.length);

blobWriter.flush();

blobWriter.close();

}

//正式送出 

con.commit();

} catch (Exception ex) {

//con.rollback();

ex.printStackTrace();

}finally{

try{

if(rs!=null){

rs.close();

rs=null;

}

 }catch (Exception e) {}

}

//con.setAutoCommit(defaultCommit);

}