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());
}
}
}
}