<pre name="code" class="java">
</pre><pre name="code" class="java">package com.coci.test2;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import oracle.sql.BLOB;
/**
*
* @author Coci
*
*/
public class TestBlob {
public static void main(String[] args) {
// blob内存放的是字节数组
// String 的getBytes方法获得该字符串的字节数组(注意编码),然后存入blob即可
String blobStr = "blob";
byte[] bytes = null;
try {
bytes = blobStr.getBytes("utf-8");
System.out.println("===" + bytes);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
instertData(bytes);
// 从数据库中读取Blob类型数据后,要转换成String类型,即转换成InputStream,再从InputStream转成byte[],再到String即可。
// blob转换成String
// String result = "";
// try {
// ByteArrayInputStream msgContent = (ByteArrayInputStream) blob
// .getBinaryStream();
// byte[] byte_data = new byte[msgContent.available()];
// msgContent.read(byte_data, 0, byte_data.length);
// result = new String(byte_data);
// } catch (SQLException e) {
// e.printStackTrace();
// }
}
@SuppressWarnings("deprecation")
public static void instertData(byte[] value) {
// TODO Auto-generated method stub
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@10.211.19.71:1521:orcl";
String username = "yst";
String password = "yst";
Connection con = DriverManager.getConnection(url, username,
password);
con.setAutoCommit(false);
String sql1 = "insert into testcoci(id,name) values('88',empty_blob())";
Statement statement = con.createStatement();
boolean b2 = statement.execute(sql1);
System.out.println("第一次===" + b2);
String sql2 = "select name from testcoci where id=88 for update";
PreparedStatement stmt = con.prepareStatement(sql2);
ResultSet rs = stmt.executeQuery();
OutputStream outStream = null;
if (rs.next()) {
System.out.println("进来了");
BLOB blob = (BLOB) rs.getBlob(1);
System.out.println("数据库 blob =" + blob + "=");
outStream = blob.getBinaryOutputStream();
outStream.write(value, 0, value.length);
}
outStream.flush();
outStream.close();
con.commit();
con.close();
} catch (Exception e) {
System.out.println(e.getCause());
}
}
}