setXXXStreamにより、アプリケーションとデータベース間で情報を通信させることができます。
解釈されないバイトストリームに使われます。
ASCII文字のストリームに使われます。
Unicode文字のストリームに使われます。
JDBC 2.0やJDBC 3.0ではストリームの長さを指定する必要があります。DerbyではアプリケーションがJDK 1.5以前の環境で動作している時、この事は要件です。JDK1.6以降の環境では、DerbyはJDBC4.0の実装を提供します。これによりストリーム長を指定する必要のないストリームのインターフェイスを使うことができます。 これらの三つのメソッドに渡すストリームオブジェクトは、標準のJavaストリームオブジェクトあるいは標準のjava.io.InputStreamインターフェイスを実装する、ユーザが定義したサブクラスの何れであっても構いません。
Statement s = conn.createStatement();
s.executeUpdate("CREATE TABLE atable (a INT, b LONG VARCHAR)");
conn.commit();
java.io.File file = new java.io.File("derby.txt");
int fileLength = (int) file.length();
// まず入力ストリームを作ります。
java.io.InputStream fin = new java.io.FileInputStream(file);
PreparedStatement ps = conn.prepareStatement(
"INSERT INTO atable VALUES (?, ?)");
ps.setInt(1, 1);
// 入力パラメータに入力ストリームを代入します。
ps.setAsciiStream(2, fin, fileLength);
ps.execute();
conn.commit();