準備済�文�列�ストリーミング

setXXXStreamã?«ã‚ˆã‚Šã€?アプリケーションã?¨ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹é–“ã?§æƒ…報を通信ã?•ã?›ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚

JDBCã?§ã?¯INã?®å¼•æ•°ã?«ã€?Javaã?®å…¥åŠ›ã‚¹ãƒˆãƒªãƒ¼ãƒ ã‚’ã?¨ã?£ã?¦ã€?大è¦?模ã?ªæƒ…報をå°?分ã?‘ã?«ã?—ã?¦æ¸¡ã?™ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚æ–‡ã?Œå®Ÿè¡Œã?•れるã?¨ã€?JDBCドライãƒ?ã?¯ã?“ã?®å…¥åŠ›ã‚¹ãƒˆãƒªãƒ¼ãƒ ã?¸ã?®å‘¼ã?³å‡ºã?—を繰り返ã?—ã?¾ã?™ã€‚ Derbyã?§ã?¯JDBC 1.2ã?Œæ??ä¾›ã?™ã‚‹ä¸‰ç¨®é¡žã?®ã‚¹ãƒˆãƒªãƒ¼ãƒ ã‚’利用ã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚ ã?“ã?®ä¸‰ç¨®é¡žã?®ã‚¹ãƒˆãƒªãƒ¼ãƒ ã?¨ã?¯ã€?
  • setBinaryStream

    解釈�れ���イトストリーム�使�れ��。

  • setAsciiStream

    ASCII文字�ストリーム�使�れ��。

  • setUnicodeStream

    Unicode文字�ストリーム�使�れ��。

JDBC 2.0ã‚„JDBC 3.0ã?§ã?¯ã‚¹ãƒˆãƒªãƒ¼ãƒ ã?®é•·ã?•を指定ã?™ã‚‹å¿…è¦?ã?Œã?‚りã?¾ã?™ã€‚Derbyã?§ã?¯ã‚¢ãƒ—リケーションã?ŒJDK 1.5以å‰?ã?®ç’°å¢ƒã?§å‹•作ã?—ã?¦ã?„る時ã€?ã?“ã?®äº‹ã?¯è¦?ä»¶ã?§ã?™ã€‚JDK1.6以é™?ã?®ç’°å¢ƒã?§ã?¯ã€?Derbyã?¯JDBC4.0ã?®å®Ÿè£…ã‚’æ??ä¾›ã?—ã?¾ã?™ã€‚ã?“れã?«ã‚ˆã‚Šã‚¹ãƒˆãƒªãƒ¼ãƒ é•·ã‚’指定ã?™ã‚‹å¿…è¦?ã?®ã?ªã?„ストリームã?®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを使ã?†ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚ ã?“れらã?®ä¸‰ã?¤ã?®ãƒ¡ã‚½ãƒƒãƒ‰ã?«æ¸¡ã?™ã‚¹ãƒˆãƒªãƒ¼ãƒ ã‚ªãƒ–ジェクトã?¯ã€?標準ã?®Javaストリームオブジェクトã?‚ã‚‹ã?„ã?¯æ¨™æº–ã?®java.io.InputStreamインターフェイスを実装ã?™ã‚‹ã€?ユーザã?Œå®šç¾©ã?—ã?Ÿã‚µãƒ–クラスã?®ä½•れã?§ã?‚ã?£ã?¦ã‚‚æ§‹ã?„ã?¾ã?›ã‚“。

JDBCã?®æ¨™æº–ã?«å¾“ã?„ã€?ストリームã?¯ä»¥ä¸‹ã?®è¡¨ã?«è¨˜ã?™ãƒ‡ãƒ¼ã‚¿åž‹ã?®åˆ—ã?«å¯¾ã?—ã?¦ã?®ã?¿è¨˜éŒ²ã?§ã??ã?¾ã?™ã€‚
表 1. ストリーム�能�JDBC�データ型
列�データ型 対応�るJava�型 AsciiStream UnicodeStream BinaryStream
CLOB java.sql.Clob x x  
CHAR   x x  
VARCHAR   x x  
LONGVARCHAR   X X  
BINARY   x x x
BLOB java.sql.Blob x x x
VARBINARY   x x x
LONGVARBINARY   x x X
注:
  • ã?“ã?®è¡¨ã?«ã?¦å¤§æ–‡å­—ã?®Xã?¯ã€?ストリームã?®åž‹ã?¨ã?—ã?¦æŽ¨å¥¨ã?•れる対照型ã?§ã?‚る事を表ã?—ã?¾ã?™ã€‚SQLåž‹ã?¨java.sql.Typesã?®å¯¾å¿œã‚’å?‚ç…§ã?—ã?¦ã??ã? ã?•ã?„。
  • ã‚‚ã?—ストリームã?®è¨˜éŒ²ã?•れる列ã?®åž‹ã?ŒLONG VARCHARã?ªã?„ã?—LONG VARCHAR FOR BIT DATAã?®ä½•れã?§ã‚‚ç„¡ã?„å ´å?ˆã€?ストリーム全体ã?Œä¸€æ‹¬ã?—ã?¦ãƒ¡ãƒ¢ãƒªã?«å?Žã?¾ã‚‰ã?ªã?‘れã?°ã?ªã‚Šã?¾ã?›ã‚“。 LONG VARCHARã?Šã‚ˆã?³LONG VARCHAR FOR BIT DATAã?®åˆ—ã?«è¨˜éŒ²ã?•れるストリームã?«ã?¤ã?„ã?¦ã?¯ã€?ã?“ã?®åˆ¶é™?ã?¯ã?‚りã?¾ã?›ã‚“。
  • ストリームを他ã?®çµ„ã?¿è¾¼ã?¿ãƒ‡ãƒ¼ã‚¿åž‹ã‚„ユーザã?Œå®šç¾©ã?—ã?Ÿãƒ‡ãƒ¼ã‚¿åž‹ã?«è¨˜éŒ²ã?™ã‚‹ã?“ã?¨ã?¯ã?§ã??ã?¾ã?›ã‚“。
以下�例�java.io.Fileをストリーム経由�LONG VARCHAR型�列�格��る方法を示���。
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();