import java.io.File;
import java.io.InputStream;
import java.io.ByteArrayStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Blob;
public class Client {
public static void main(String[] args) throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:sample", "hoge", "hoge"
);
//LargeObject INSERT
File f = new File("/home/hoge/hoge.txt");
PreparedStatement ps = con.prepareStatement("INSERT INTO sample(obj) values(?)");
ps.setBinaryStream(1, new FileInputStream(f), (int)f.length());
ps.executeUpdate();
ps.close();
//LargeObject SELECT
PreparedStatement ps2 = con.prepareStatement("SELECT obj FROM sample WHERE id = 1");
ResultSet rs = ps2.executeQuery();
Blob blob = rs.getBlob("obj");
InputStream is = blob.getBinaryStream();
ByteArrayStream bas = new ByteArrayStream();
int bytes;
byte[] b = new byte[4096];
while((bytes = in.read(b)) != -1) {
bas.write(b, 0, bytes);
}
System.out.println(bas.toString());
rs.close();
ps2.close();
con.close();
}
}