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