用jdbc访问二进制类型的数据

时间:2023-03-09 23:33:31
用jdbc访问二进制类型的数据
 package it.cast.jdbc;

 import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement; public class BlobTest { public static void main(String[] args) {
read();
} static void create() {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null; try {
// 建立连接
conn = jdbcUtils.getConnection(); // 创建语句
String sql = "insert into blob_test(big_bit) values(?)";
ps = conn.prepareStatement(sql);
File file = new File("ww.gif");
InputStream in = new BufferedInputStream(new FileInputStream(file)); ps.setBinaryStream(1, in, (int) file.length()); // 执行语句
int i = ps.executeUpdate(); System.out.println(i); in.close();
} catch (Exception e) {
System.out.println("error");
} finally {
jdbcUtils.free(rs, ps, conn);
} } static void read() {
Connection conn = null;
Statement st = null;
ResultSet rs = null; try {
// 建立连接
conn = jdbcUtils.getConnection(); // 创建语句
st = conn.createStatement(); String sql = "select big_bit from blob_test"; // 执行语句
rs = st.executeQuery(sql); while (rs.next()) {
InputStream in = rs.getBinaryStream(1); File file = new File("ww_bak.gif"); OutputStream out = new BufferedOutputStream(
new FileOutputStream(file));
byte[] buff = new byte[1024]; for (int i = 0; (i = in.read()) > 0;) {
out.write(buff, 0, 1);
}
in.close();
out.close();
} } catch (Exception e) {
System.out.println("error");
} finally {
jdbcUtils.free(rs, st, conn);
} } }

BlobTest