クラス DefaultLobHandler
- 実装されているすべてのインターフェース:
LobHandler
LobHandler インターフェースのデフォルト実装。java.sql.ResultSet および java.sql.PreparedStatement が提供するダイレクトアクセサーメソッドを呼び出します。 デフォルトでは、受信ストリームは JDBC ドライバーの PreparedStatementSE 上の適切な 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
ネストされたクラスの要約
ネストされたクラスフィールドのサマリー
フィールドコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明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インスタンスを作成します。voidsetCreateTemporaryLob(boolean createTemporaryLob) バイト配列 / 文字列を、JDBC 4.0createBlob/createClobメソッドを介して作成された一時的な JDBCBlob/Clob オブジェクトにコピーするかどうかを指定します。voidsetStreamAsLob(boolean streamAsLob) ストリーム引数を指定した JDBC 4.0setBlob/setClobメソッドを使用して、バイナリストリーム / 文字ストリームを明示的な LOB コンテンツとして JDBC ドライバーに送信するかどうかを指定します。voidsetWrapAsLob(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メソッドを使用します。このような折り返しが必要であることがわかっている JDBC ドライバーに対する明示的な Blob/Clob 折り返しの場合はこれを "true" に切り替えます(たとえば、OID 列にアクセスするための PostgreSQL であるのに対し、BYTEA 列には標準的な方法でアクセスする必要があります)。この設定は、バイト配列 / 文字列引数とストリーム引数に影響します。ただし、
"streamAsLob"がこの処理をオーバーライドして JDBC 4.0 の新しい明示的なストリーミングサポート(使用可能な場合)を使用する場合を除きます。setStreamAsLob
public void setStreamAsLob(boolean streamAsLob) ストリーム引数を指定した JDBC 4.0setBlob/setClobメソッドを使用して、バイナリストリーム / 文字ストリームを明示的な LOB コンテンツとして JDBC ドライバーに送信するかどうかを指定します。デフォルトは "false" で、コンテンツの設定に一般的な JDBC 2.0
setBinaryStream/setCharacterStreamメソッドを使用します。JDBC ドライバーが実際にこれらの JDBC 4.0 操作(Derby など)をサポートしている場合は、明示的な JDBC4.0 ストリーミングの場合はこれを "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 インスタンス
- 関連事項: