クラス DefaultLobHandler
- 実装されたすべてのインターフェース:
LobHandler
LobHandler
インターフェースのデフォルト実装。java.sql.ResultSet
および java.sql.PreparedStatement
が提供するダイレクトアクセサーメソッドを呼び出します。 デフォルトでは、受信ストリームは JDBC ドライバーの PreparedStatement
SE 上の適切な setBinary/Ascii/CharacterStream
メソッドに渡されます。指定されたコンテンツの長さが負の場合、このハンドラーは長さパラメーターなしで set-stream メソッドの JDBC 4.0 バリアントを使用します。それ以外の場合は、指定された長さをドライバーに渡します。
この LobHandler は、単純な BLOB および CLOB 処理に関する仕様の提案に関して、JDBC に準拠しているすべての JDBC ドライバーで機能するはずです。これは、Oracle 9i のドライバーにはまったく適用されません。Oracle 10g の時点では機能しますが、LOB サイズの制限がある場合があります。古いデータベースサーバーに対して作業する場合でも、最近の Oracle ドライバーの使用を検討してください。推奨事項の完全なセットについては、LobHandler
javadoc を参照してください。
一部の JDBC ドライバーでは、BLOB/CLOB ターゲット列を持つ値を、JDBC setBlob
/ setClob
API を介して明示的に設定する必要があります(たとえば、PostgreSQL のドライバー)。このようなドライバーに対して操作する場合は、"wrapAsLob"
プロパティを "true" に切り替えます。
JDBC 4.0 では、この LobHandler は、ストリーム引数を直接取る setBlob
/ setClob
バリアントを介した BLOB/CLOB コンテンツのストリーミングもサポートします。完全に準拠した JDBC 4.0 ドライバーに対して操作する場合は、"streamAsLob"
プロパティを "true" に切り替えることを検討してください。
最後に、この LobHandler は一時的な BLOB/CLOB オブジェクトの作成もサポートしています。"streamAsLob" が LOB サイズの制限に達した場合は、"createTemporaryLob"
プロパティを "true" に切り替えることを検討してください。
推奨事項の概要については、LobHandler
インターフェースの javadoc を参照してください。
- 導入:
- 04.12.2003
- 作成者:
- Juergen Hoeller
- 関連事項:
ResultSet.getBytes(int)
SEResultSet.getBinaryStream(int)
SEResultSet.getString(int)
SEResultSet.getAsciiStream(int)
SEResultSet.getCharacterStream(int)
SEPreparedStatement.setBytes(int, byte[])
SEPreparedStatement.setBinaryStream(int, java.io.InputStream, int)
SEPreparedStatement.setString(int, java.lang.String)
SEPreparedStatement.setAsciiStream(int, java.io.InputStream, int)
SEPreparedStatement.setCharacterStream(int, java.io.Reader, int)
SE
ネストされたクラスのサマリー
修飾子と型クラス説明protected class
使用すべきではありません。内部クラスとしてのデフォルトの LobCreator 実装。フィールドサマリー
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明getBlobAsBinaryStream
(ResultSetSE rs, int columnIndex) 使用すべきではありません。指定された ResultSet から、指定された列をバイナリストリームとして取得します。byte[]
getBlobAsBytes
(ResultSetSE rs, int columnIndex) 使用すべきではありません。指定された ResultSet から指定された列をバイトとして取得します。getClobAsAsciiStream
(ResultSetSE rs, int columnIndex) 使用すべきではありません。指定された ResultSet から指定された列を ASCII ストリームとして取得します。getClobAsCharacterStream
(ResultSetSE rs, int columnIndex) 使用すべきではありません。指定された ResultSet から、指定された列を文字ストリームとして取得します。getClobAsString
(ResultSetSE rs, int columnIndex) 使用すべきではありません。指定された ResultSet から指定された列を文字列として取得します。使用すべきではありません。新しいLobCreator
インスタンスを作成します。void
setCreateTemporaryLob
(boolean createTemporaryLob) 使用すべきではありません。バイト配列 / 文字列を、JDBC 4.0createBlob
/createClob
メソッドを介して作成された一時的な JDBCBlob/Clob オブジェクトにコピーするかどうかを指定します。void
setStreamAsLob
(boolean streamAsLob) 使用すべきではありません。ストリーム引数を指定した JDBC 4.0setBlob
/setClob
メソッドを使用して、バイナリストリーム / 文字ストリームを明示的な LOB コンテンツとして JDBC ドライバーに送信するかどうかを指定します。void
setWrapAsLob
(boolean wrapAsLob) 使用すべきではありません。Blob/Clob 引数を指定した JDBCsetBlob
/setClob
メソッドを使用して、JDBC Blob/Clob オブジェクトにラップされた JDBC ドライバーにバイト配列 / 文字列を送信するかどうかを指定します。クラス org.springframework.jdbc.support.lob.AbstractLobHandler から継承されたメソッド
getBlobAsBinaryStream, getBlobAsBytes, getClobAsAsciiStream, getClobAsCharacterStream, getClobAsString
フィールドの詳細
logger
使用すべきではありません。
コンストラクターの詳細
DefaultLobHandler
public DefaultLobHandler()使用すべきではありません。
メソッドの詳細
setWrapAsLob
public void setWrapAsLob(boolean wrapAsLob) 使用すべきではありません。Blob/Clob 引数を指定した JDBCsetBlob
/setClob
メソッドを使用して、JDBC Blob/Clob オブジェクトにラップされた JDBC ドライバーにバイト配列 / 文字列を送信するかどうかを指定します。デフォルトは "false" で、一般的な JDBC 2.0
setBinaryStream
/setCharacterStream
メソッドを使用してコンテンツを設定します。明示的な Blob/Clob 折り返しを必要とすることが知られている JDBC ドライバーに対してこれを "true" に切り替えると、このような折り返しが必要になります (たとえば、PostgreSQL では OID 列にアクセスしますが、BYTEA 列には標準的な方法でアクセスする必要があります)。この設定は、バイト配列 / 文字列引数とストリーム引数に影響します。ただし、
"streamAsLob"
がこの処理をオーバーライドして JDBC 4.0 の新しい明示的なストリーミングサポート(使用可能な場合)を使用する場合を除きます。setStreamAsLob
public void setStreamAsLob(boolean streamAsLob) 使用すべきではありません。ストリーム引数を指定した JDBC 4.0setBlob
/setClob
メソッドを使用して、バイナリストリーム / 文字ストリームを明示的な LOB コンテンツとして JDBC ドライバーに送信するかどうかを指定します。デフォルトは "false" で、コンテンツの設定には一般的な JDBC 2.0
setBinaryStream
/setCharacterStream
メソッドを使用します。明示的な JDBC 4.0 ストリーミングの場合は、JDBC ドライバーが実際にこれらの JDBC 4.0 操作 (Derby など) をサポートしている限り、これを "true" に切り替えます。この設定は、JDBC 4.0 サポートを必要とするバイト引数 / 文字列引数だけでなく、ストリーム引数にも影響します。JDBC 3.0 に対する LOB コンテンツのサポートについては、
"wrapAsLob"
設定を確認してください。setCreateTemporaryLob
public void setCreateTemporaryLob(boolean createTemporaryLob) 使用すべきではありません。バイト配列 / 文字列を、JDBC 4.0createBlob
/createClob
メソッドを介して作成された一時的な JDBCBlob/Clob オブジェクトにコピーするかどうかを指定します。デフォルトは "false" で、コンテンツの設定に一般的な JDBC 2.0
setBinaryStream
/setCharacterStream
メソッドを使用します。JDBC 4.0 を使用して明示的な Blob/Clob を作成するには、これを "true" に切り替えます。この設定は、JDBC 4.0 サポートを必要とするバイト引数 / 文字列引数だけでなく、ストリーム引数にも影響します。JDBC 3.0 に対する LOB コンテンツのサポートについては、
"wrapAsLob"
設定を確認してください。getBlobAsBytes
使用すべきではありません。インターフェースからコピーされた説明:LobHandler
指定された ResultSet から指定された列をバイトとして取得します。データベースとドライバーに応じて、単にResultSet.getBytes
を呼び出すか、ResultSet.getBlob
を操作する場合があります。- パラメーター:
rs
- コンテンツを取得する ResultSetcolumnIndex
- 使用する列インデックス- 戻り値:
- バイト配列としてのコンテンツ、または SQL NULL の場合は
null
- 例外:
SQLExceptionSE
- JDBC メソッドによってスローされた場合- 関連事項:
getBlobAsBinaryStream
@Nullable public InputStreamSE getBlobAsBinaryStream(ResultSetSE rs, int columnIndex) throws SQLExceptionSE 使用すべきではありません。インターフェースからコピーされた説明:LobHandler
指定された ResultSet から、指定された列をバイナリストリームとして取得します。データベースとドライバーに応じて、単にResultSet.getBinaryStream
を呼び出すか、ResultSet.getBlob
を操作します。- パラメーター:
rs
- コンテンツを取得する ResultSetcolumnIndex
- 使用する列インデックス- 戻り値:
- バイナリストリームとしてのコンテンツ、または SQL NULL の場合は
null
- 例外:
SQLExceptionSE
- JDBC メソッドによってスローされた場合- 関連事項:
getClobAsString
使用すべきではありません。インターフェースからコピーされた説明:LobHandler
指定された ResultSet から指定された列を文字列として取得します。データベースとドライバーに応じて、単にResultSet.getString
を呼び出すか、ResultSet.getClob
を操作します。- パラメーター:
rs
- コンテンツを取得する ResultSetcolumnIndex
- 使用する列インデックス- 戻り値:
- 文字列としてのコンテンツ、または SQL NULL の場合は
null
- 例外:
SQLExceptionSE
- JDBC メソッドによってスローされた場合- 関連事項:
getClobAsAsciiStream
使用すべきではありません。インターフェースからコピーされた説明:LobHandler
指定された ResultSet から指定された列を ASCII ストリームとして取得します。データベースとドライバーに応じて、単にResultSet.getAsciiStream
を呼び出すか、ResultSet.getClob
を操作します。- パラメーター:
rs
- コンテンツを取得する ResultSetcolumnIndex
- 使用する列インデックス- 戻り値:
- ASCII ストリームとしてのコンテンツ、または SQL NULL の場合は
null
- 例外:
SQLExceptionSE
- JDBC メソッドによってスローされた場合- 関連事項:
getClobAsCharacterStream
使用すべきではありません。インターフェースからコピーされた説明:LobHandler
指定された ResultSet から、指定された列を文字ストリームとして取得します。データベースとドライバーに応じて、単にResultSet.getCharacterStream
を呼び出すか、ResultSet.getClob
を操作します。- パラメーター:
rs
- コンテンツを取得する ResultSetcolumnIndex
- 使用する列インデックス- 戻り値:
- 文字ストリームとしてのコンテンツ
- 例外:
SQLExceptionSE
- JDBC メソッドによってスローされた場合- 関連事項:
getLobCreator
使用すべきではありません。インターフェースからコピーされた説明:LobHandler
新しいLobCreator
インスタンス、つまり BLOB と CLOB を作成するためのセッションを作成します。作成された LOB が不要になった後、通常はステートメントの実行後またはトランザクションの完了後に閉じる必要があります。- 戻り値:
- 新しい LobCreator インスタンス
- 関連事項:
SqlBinaryValue
とSqlCharacterValue
を優先