接続プロパティの設定
接続文字列のプロパティは、さまざまな方法で指定できます。
DriverManager クラスを使用して接続するときは、接続 URL における「名前=値」形式のプロパティとして指定できます。
DriverManager クラスの Connect メソッドの Properties パラメータにおける「名前=値」形式のプロパティとして指定できます。
ドライバのデータ ソースの適切な setter メソッドの値として指定できます。 次に例を示します。
datasource.setServerName(value) datasource.setDatabaseName(value)
プロパティ名の大文字と小文字は区別されず、重複したプロパティ名は次の順序で解決されます。
API 引数 (user、password など)
プロパティ コレクション
接続文字列の最後のインスタンス
プロパティ名には不明な値を使用することもできます。JDBC ドライバはこのような値の大文字と小文字の区別について検証しません。
シノニムを使用できます。これは、重複したプロパティ名と同じ順序で解決されます。
次の表は、JDBC ドライバで現在使用できるすべての接続文字列プロパティを示しています。
プロパティ | 種類 | 既定値 | 説明 | ||
---|---|---|---|---|---|
applicationName |
String [<=128 char] |
null |
アプリケーション名、または "Microsoft SQL Server 2005 JDBC Driver" (名前が指定されていない場合) です。 個別のアプリケーションを識別するために、さまざまな SQL Server プロファイリング ツールおよびロギング ツールで使用されます。 |
||
databaseName、database |
String [<=128 char] |
null |
接続するデータベース名です。 指定しない場合は、既定のデータベースへの接続が確立されます。 |
||
disableStatementPooling |
boolean ["true"|"false"] |
true |
現在は、値 "true" のみがサポートされています。 "false" に設定した場合は、例外が発生します。 |
||
encrypt |
boolean ["true"|"false"] |
false |
SQL Server で、サーバーに証明書がインストールされている場合に、クライアントとサーバーの間で送信されるすべてのデータに対して SSL (Secure Sockets Layer) 暗号化が使用されるようにするには、"true" に設定します。 既定値は false です。 |
||
failoverPartner |
String |
null |
データベース ミラーリング構成で使用されるフェールオーバー サーバーの名前です。 このプロパティは、プリンシパル サーバーへの初期接続に失敗した場合に使用されます。初期接続が行われた後は、このプロパティは無視されます。 databaseName プロパティと組み合わせて使用する必要があります。 |
||
hostNameInCertificate |
String |
null |
SQL Server の SSL 証明書の検証に使用されるホスト名です。 hostNameInCertificate プロパティが指定されていないか null に設定されている場合、Microsoft SQL Server 2005 JDBC Driver は、接続 URL の serverName プロパティ値をホスト名として使用して SQL Server の SSL 証明書を検証します。 注意 このプロパティは、encrypt プロパティおよび trustServerCertificate プロパティと組み合わせて使用されます。 このプロパティが証明書の検証に影響するのは、encrypt プロパティが "true" に設定されていて、trustServerCertificate プロパティが "false" に設定されている場合だけです。 |
||
instanceName |
String [<=128 char] |
null |
接続する SQL Server 2000 または SQL Server 2005 のインスタンス名です。 指定しない場合は、既定のインスタンスへの接続が確立されます。 instanceName と port の両方を指定する場合については、port の注を参照してください。 |
||
integratedSecurity |
boolean ["true"|"false"] |
false |
アプリケーションのユーザーを認証するために SQL Server によって Windows 資格情報が使用されることを示す場合は、"true" に設定します。 "true" の場合、JDBC ドライバは、コンピュータまたはネットワーク ログオン時に提供された資格情報を見つけるために、ローカル コンピュータの資格情報のキャッシュを検索します。 "false" の場合は、ユーザー名とパスワードを指定する必要があります。 注意 この接続プロパティは、Microsoft Windows オペレーティング システムのみでサポートされています。 |
||
lastUpdateCount |
boolean ["true"|"false"] |
true |
値が "true" の場合、サーバーに渡された SQL ステートメントから最終的な更新数のみを返します。また、SELECT、INSERT、または DELETE ステートメントのいずれか 1 つで使用して、サーバーのトリガにより追加された更新数を無視することができます。 このプロパティを "false" に設定すると、サーバーのトリガにより返される更新数を含む、すべての更新数が返されます。 注意 このプロパティが適用されるのは、executeUpdate メソッドと一緒に使用された場合だけです。 |
||
lockTimeout |
int |
-1 |
データベースがロック タイムアウトを通知するまでに待機する時間 (ミリ秒) です。 既定では、無期限に待機します。 指定されている場合、この値は接続上のすべてのステートメントに対する既定値になります。 特定のステートメントに対するタイムアウトは、 |
||
loginTimeout |
int [0..65535] |
0 |
ドライバがタイムアウトを通知して接続を失敗させるまでに待機する時間 (秒) です。 0 の値は、タイムアウト値がないことを示します。 0 以外の値は、ドライバがタイムアウトを通知して接続を失敗させるまでに待機する時間 (秒) を示します。 |
||
packetSize |
int [-1| 0 | 512..32767] |
8000 |
SQL Server との通信に使用されるネットワーク パケット サイズです (バイトで指定します)。 値が -1 の場合は、サーバーの既定のパケット サイズが使用されます。 値が 0 の場合は、最大値 (32767) が使用されます。 このプロパティが許容範囲外の値に設定されている場合は、例外が発生します。
|
||
password |
String [<=128 char] |
null |
データベース パスワードです。 |
||
portNumber、port |
int [0..65535] |
1433 |
SQL Server が待機しているポートです。 ポート番号が接続文字列に指定されている場合は、sqlbrowser に対する要求は作成されません。 port と instanceName の両方が指定されている場合は、指定されたポートへの接続が確立されます。 ただし、instanceName の検証が行われ、ポートと一致しない場合はエラーがスローされます。
|
||
responseBuffering |
String ["full"|"adaptive"] |
full |
このプロパティが "full" に設定されている場合、ステートメントの実行時に結果セット全体がサーバーから読み取られます。 Microsoft SQL Server 2005 JDBC Driver Version 1.2 の既定のモードは "full" で、Microsoft SQL Server 2005 JDBC Driver Version 1.0 および Version 1.1 との下位互換性が確保されます。 このプロパティを "adaptive" に設定すると、必要に応じて最小限のデータがバッファリングされます。 Microsoft SQL Server 2005 JDBC Driver Version 1.2 の推奨モードは "adaptive" です。 |
||
selectMethod |
String ["direct"|"cursor"] |
direct |
このプロパティが "cursor" に設定されている場合、TYPE_FORWARD_ONLY および CONCUR_READ_ONLY のカーソルに対して接続上で作成されるクエリごとに、データベース カーソルが作成されます。 このプロパティは、通常、クライアントのメモリ内に収まらない非常に大きな結果セットをアプリケーションが生成する場合にのみ必要です。 このプロパティが "cursor" に設定されると、結果セットの行が限定された数だけクライアントのメモリに保持されます。 既定の動作では、すべての結果セットの行がクライアントのメモリに保持されます。 この動作により、アプリケーションがすべての行を処理する場合は、パフォーマンスが最も高くなります。 |
||
sendStringParametersAsUnicode |
boolean ["true"|"false"] |
true |
"false" に設定すると、文字データに対して準備されたパラメータを Unicode ではなく ASCII で送信します。 このパラメータにより、SQL Server 2000 または SQL Server 2005 のテーブルにおいて、Unicode ではない文字データのインデックス参照のパフォーマンスが向上します。 たとえば、ASCII 行のキーを、Unicode からの変換オーバーヘッドを発生させることなく、直接比較することができます。 詳細については、support.microsoft.com/kb/271566 を参照してください。 |
||
serverName、server |
String |
null |
SQL Server を実行しているコンピュータです。 |
||
user、userName |
String [<=128 char] |
null |
データベース ユーザーです。 |
||
trustServerCertificate |
boolean ["true"|"false"] |
false |
Microsoft SQL Server 2005 JDBC Driver が SQL Server の SSL 証明書を検証しないようにするには "true" に設定します。 "true" の場合、通信レイヤが SSL で暗号化されていれば SQL Server の SSL 証明書が自動的に信頼されます。 "false" の場合は、Microsoft SQL Server 2005 JDBC Driver がサーバーの SSL 証明書を検証します。 サーバー証明書の検証が失敗した場合は、エラーが発生して接続が終了します。 既定値は "false" です。 注意 このプロパティは、encrypt プロパティと組み合わせて使用されます。 このプロパティがサーバーの SSL 証明書の検証に影響するのは、encrypt プロパティが "true" に設定されている場合だけです。 |
||
trustStore |
String |
null |
証明書の trustStore ファイルへのパス (ファイル名を含む) です。 trustStore ファイルには、クライアントが信頼する証明書の一覧が含まれています。 このプロパティが指定されていないか null に設定されている場合、ドライバは、信頼マネージャ ファクトリの検索ルールに従って、使用する証明書ストアを決定します。 既定の SunX509 TrustManagerFactory では、次の順序で信頼済みマテリアルの検索が行われます。
詳細については、Sun Microsystems の Web サイトで SunX509 TrustManager Interface についてのドキュメントを参照してください。 注意 このプロパティが証明書の trustStore の検索に影響するのは、encrypt プロパティが "true" に設定されていて、trustServerCertificate プロパティが "false" に設定されている場合だけです。 |
||
trustStorePassword |
String |
null |
trustStore データの整合性を確認するために使用するパスワードです。 trustStore プロパティは設定されているが trustStorePassword プロパティは設定されていない場合、trustStore の整合性は確認されません。 trustStore プロパティと trustStorePassword プロパティの両方が指定されていない場合、ドライバでは、JVM システム プロパティの "javax.net.ssl.trustStore" と "javax.net.ssl.trustStorePassword" が使用されます。 "javax.net.ssl.trustStorePassword" システム プロパティが指定されていない場合、trustStore の整合性は確認されません。 trustStore プロパティは設定されていないが trustStorePassword プロパティは設定されている場合、JDBC ドライバでは、"javax.net.ssl.trustStore" で指定されたファイルがトラスト ストアとして使用され、指定された trustStorePassword を使用してトラスト ストアの整合性が確認されます。 これは、クライアント アプリケーションでパスワードを JVM システム プロパティに格納しないようにする場合に必要となることがあります。 注意 trustStorePassword プロパティが証明書の trustStore の検索に影響するのは、encrypt プロパティが "true" に設定されていて、trustServerCertificate プロパティが "false" に設定されている場合だけです。 |
||
workstationID |
String [<=128 char] |
<空の文字列> |
ワークステーション ID です。 個別のワークステーションを識別するために、さまざまな SQL Server プロファイリング ツールおよびロギング ツールで使用されます。 何も指定しなかった場合は、<空の文字列> が使用されます。 |
||
xopenStates |
boolean ["true"|"false"] |
false |
"true" に設定すると、ドライバが XOPEN 互換の状態コードを例外で返します。 既定では、SQL 99 の状態コードを返します。 |