JDBC ドライバの国際対応機能

Microsoft SQL Server JDBC Driver の国際対応機能には、次のものがあります。

  • SQL Server と同じ言語により完全にローカライズされたサービスをサポートします。

  • ロケールに依存する SQL Server データに対する Java 言語変換をサポートします。

  • オペレーティング システムに関係なく、各国の言語をサポートします。

文字データの処理

Java の文字データは、既定で Unicode として処理されます。Java String オブジェクトは Unicode 文字データを表します。JDBC ドライバにおいてこの規則の唯一の例外となるのは、ASCII ストリームの getter メソッドと setter メソッドです。暗黙の仮定で既知のコード ページの 1 つ (ASCII) によるバイト ストリームが使用されるため、これは特殊なケースです。

また、JDBC ドライバには sendStringParametersAsUnicode 接続文字列プロパティが用意されています。このプロパティを使用して、文字データに対して準備されたパラメータを Unicode ではなく ASCII またはマルチバイト文字セット (MBCS) で送信するように指定できます。sendStringParametersAsUnicode 接続文字列プロパティの詳細については、「接続プロパティの設定」を参照してください。

ドライバの受信変換

サーバーから受信する Unicode テキスト データは、変換する必要はありません。データは Unicode として直接渡されます。サーバーから受信する Unicode 以外のデータは、データベースまたは列レベルでデータのコード ページから Unicode に変換されます。JDBC ドライバは、Java 仮想マシン (JVM) 変換ルーチンを使用してこのような変換を実行します。変換は、あらゆる型の文字列および文字のストリームの getter メソッドで実行されます。

JVM がデータベースのデータに対して適切なコード ページをサポートしていない場合、JDBC ドライバは、"XXX コード ページは Java 環境ではサポートされていません。" という例外をスローします。この問題を回避するには、その JVM でサポートする必要のある国際的な文字を完全にインストールする必要があります。詳細については、Sun Microsystems の Web サイトの「サポートされているエンコーディング」を参照してください。

ドライバの送信変換

ドライバからサーバーへ送信される文字データは、ASCII または Unicode です。たとえば、JDBC 4.0 の新しい National Character メソッドである、SQLServerPreparedStatement クラスおよび SQLServerCallableStatement クラスの setNStringsetNCharacterStreamsetNClob などのメソッドでは、常に、サーバーに対してパラメータ値が Unicode で送信されます。

一方、National Character API メソッド以外のメソッドである、SQLServerPreparedStatement クラスおよび SQLServerCallableStatement クラスの setStringsetCharacterStreamsetClob などのメソッドでは、sendStringParametersAsUnicode プロパティが既定値の "true" に設定されている場合にのみ、サーバーに対して値が Unicode で送信されます。

Unicode 以外のパラメータ

Unicode 以外のパラメータの CHARVARCHARLONGVARCHAR などの型の使用に伴うパフォーマンスを最適に保つためには、sendStringParametersAsUnicode 接続文字列プロパティを "false" に設定し、National Character メソッド以外のメソッドを使用します。

書式設定に関する問題

日付、時刻、および通貨の場合、ローカライズされたデータのすべての書式設定は、Locale オブジェクトや、DateCalendarNumber データ型用のさまざまな書式設定メソッドを使用して、Java 言語レベルで実行されます。JDBC ドライバがロケールに依存するデータをローカライズされた書式で渡す必要があることはまれですが、このような場合は既定の JVM ロケールを使用して適切なフォーマッタが使用されます。

照合順序のサポート

Microsoft SQL Server JDBC Driver の以前のバージョンである 1.0、1.1、および 1.2 では、SQL Server 2000 および SQL Server 2005 でサポートされるすべての照合順序がサポートされます。

JDBC Driver Version 2.0 では、SQL Server 2000 と SQL Server 2005 でサポートされるすべての照合順序に加え、新しい照合順序 (SQL Server 2008 で導入された新バージョンの Windows 照合順序名) がサポートされます。

照合順序の詳細については、SQL Server 2008 オンライン ブックの「照合順序と Unicode のサポート」および「Windows 照合順序名 (Transact-SQL)」を参照してください。

参照

その他の技術情報

JDBC ドライバの概要