接続の操作

JDBC ドライバーのダウンロード

以下のセクションでは、SQL Server 用 Microsoft JDBC ドライバー の SQLServerConnection クラスを使用して、SQL Server データベースに接続するさまざまな方法の例を示します。

Note

JDBC ドライバーを使用した SQL Server への接続で問題が発生した場合は、「接続のトラブルシューティング」で提案されている修正方法を参照してください。

DriverManager クラスを使用した接続の作成

SQL Server データベースへの接続を最も効率的に作成するには、JDBC ドライバーを読み込み、次のように DriverManager クラスの getConnection メソッドを呼び出します。

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
String connectionUrl = "jdbc:sqlserver://localhost;encrypt=true;database=AdventureWorks;integratedSecurity=true;"  
Connection con = DriverManager.getConnection(connectionUrl);  

この手法では、渡された URL で正常に接続できるドライバーを示す一覧から、最初の使用可能なドライバーを使用して、データベース接続を作成します。

Note

sqljdbc4.jar クラス ライブラリを使用する場合は、アプリケーションから Class.forName メソッドを使用してドライバーの登録または読み込みを明示的に行う必要はありません。 DriverManager クラスの getConnection メソッドが呼び出されると、登録されている一連の JDBC ドライバーから適切なドライバーが検出されます。 詳細については、「JDBC ドライバーの使用」を参照してください。

SQLServerDriver クラスを使用した接続の作成

ドライバーの一覧で DriverManager 用に特定のドライバーを指定する必要がある場合は、次のように SQLServerDriver クラスの connect メソッドを使用して、データベース接続を作成できます。

Driver d = (Driver) Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();  
String connectionUrl = "jdbc:sqlserver://localhost;encrypt=true;database=AdventureWorks;integratedSecurity=true;"  
Connection con = d.connect(connectionUrl, new Properties());  

SQLServerDataSource クラスを使用した接続の作成

SQLServerDataSource クラスを使用して接続を作成する必要がある場合は、次のように、クラスのさまざまな setter メソッドを使用してから getConnection メソッドを呼び出すことができます。

SQLServerDataSource ds = new SQLServerDataSource();  
ds.setUser("MyUserName");  
ds.setPassword("*****");  
ds.setServerName("localhost");  
ds.setPortNumber(1433);
ds.setDatabaseName("AdventureWorks");  
Connection con = ds.getConnection();  

特定のデータ ソースを対象とする接続の作成

特定のデータ ソースを対象とするデータベース接続を作成する必要がある場合、多数の方法があります。 それぞれの方法は、接続 URL を使用して設定するプロパティによって設定されます。

リモート サーバー上の既定のインスタンスに接続するには、次の例を使用します。

String url = "jdbc:sqlserver://MyServer;encrypt=true;integratedSecurity=true;"

サーバーの特定のポートに接続するには、次の例を使用します。

String url = "jdbc:sqlserver://MyServer:1533;encrypt=true;integratedSecurity=true;"

サーバー上の名前付きインスタンスに接続するには、次の例を使用します。

String url = "jdbc:sqlserver://209.196.43.19;encrypt=true;instanceName=INSTANCE1;integratedSecurity=true;"

サーバー上の特定のデータベースに接続するには、次の例を使用します。

String url = "jdbc:sqlserver://172.31.255.255;encrypt=true;database=AdventureWorks;integratedSecurity=true;"

接続 URL の例については、「接続 URL の構築」を参照してください。

カスタムのログイン タイムアウトを持つ接続の作成

サーバーの負荷またはネットワーク トラフィックを調整する必要がある場合は、次の例のように、特定のログイン タイムアウト値を秒数で指定した接続を作成できます。

String url = "jdbc:sqlserver://MyServer;encrypt=true;loginTimeout=90;integratedSecurity=true;"

アプリケーション レベルの ID を持つ接続の作成

ログとプロファイルを使用する必要がある場合は、次の例のように、接続が特定のアプリケーションからのものであることを識別する必要があります。

String url = "jdbc:sqlserver://MyServer;encrypt=true;applicationName=MYAPP.EXE;integratedSecurity=true;"

接続を閉じる

次のように、SQLServerConnection クラスの close メソッドを呼び出すことで、データベース接続を明示的に閉じることができます。

con.close();

これにより、SQLServerConnection オブジェクトが使用しているデータベース リソースが解放されます。また、接続がプールされるシナリオでは、接続が接続プールに戻されます。

Note

また、close メソッドを呼び出すと、保留中のトランザクションもすべてロールバックされます。

関連項目

JDBC ドライバーによる SQL Server への接続