接続の操作
以下のセクションでは、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 メソッドを呼び出すと、保留中のトランザクションもすべてロールバックされます。