概要
DBMS(DataBaseManagementSystem)1との接続を管理するインタフェース。
主な役割は、以下のようなデータベースとの接続に関連する操作を提供することである。
主な役割
- データベースへの接続の確立と切断
- SQLクエリの実行
- トランザクションの制御
java.sql.Connection
インタフェースは、データベースの種類に関係なく、共通のメソッドを提供するため、異なるデータベースへの接続を簡単に切り替えることができる。
データベースへの接続を確立するには、通常 DriverManager.getConnection()
メソッドを使用する。
DriverManager
は、クライアントプログラムに代わって、クラスパス上にあるDBMSベンダーから提供されたドライバ2を検索し、DBMSに接続する。
例
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseConnectionExample {
public static void main(String[] args) {
// データベース接続情報
String url = "jdbc:mysql://localhost:3306/mydatabase"; // データベースのURL
String user = "your_username"; // データベースのユーザー名
String password = "your_password"; // データベースのパスワード
// Connectionオブジェクトを宣言
Connection connection = null;
try {
// データベースに接続
connection = DriverManager.getConnection(url, user, password);
// 接続成功した場合の処理
System.out.println("データベースに接続しました!");
// ここでデータベース操作を行うことができます
} catch (SQLException e) {
// 接続に失敗した場合の処理
System.err.println("データベース接続エラー: " + e.getMessage());
} finally {
// 接続を切断
if (connection != null) {
try {
connection.close();
System.out.println("データベース接続を切断しました!");
} catch (SQLException e) {
System.err.println("データベース接続の切断エラー: " + e.getMessage());
}
}
}
}
}
この例では、MySQLデータベースに接続し、接続が成功した場合に"データベースに接続しました!"と表示し、接続を切断した際に"データベース接続を切断しました!"と表示する。
接続に失敗した場合は、エラーメッセージを表示する。
データベースのURLとして指定しているjdbc:mysql://localhost:3306/mydatabase
は、「localhost
の3306番ポートで待ち受けているサーバーに、mydatabase
というデータベースを読み込ませる」という指定になっている。
また、ほとんどのDBMSは同時に接続できる数に限りがあるため、データベースの接続は、利用が終わるために閉じなければならない。
上記の例では、Connection
インタフェースのclose()
メソッドを使用している。
例外が発生するかどうかに関わらず接続を閉じられるように、finally
ブロック内で呼び出している。
try-with-resources
を使用するとより簡潔に記述することができる。
例
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseConnectionExample {
public static void main(String[] args) {
// データベース接続情報
String url = "jdbc:mysql://localhost:3306/mydatabase"; // データベースのURL
String user = "your_username"; // データベースのユーザー名
String password = "your_password"; // データベースのパスワード
// try-with-resourcesを使用してConnectionオブジェクトを作成
try (Connection connection = DriverManager.getConnection(url, user, password)) {
// データベースに接続成功した場合の処理
System.out.println("データベースに接続しました!");
// ここでデータベース操作を行うことができます
} catch (SQLException e) {
// 接続に失敗した場合の処理
System.err.println("データベース接続エラー: " + e.getMessage());
}
// try-with-resourcesを使用するため、接続は自動的に切断されます
}
}
この例では、try-with-resources
ブロック内でConnection
オブジェクトを作成している。
このようにすると、try-with-resources
ブロックを抜ける際に、接続が自動的に閉じられる。
従って、明示的に接続を切断するコードを記述する必要はない。
これにより、コードがよりシンプルで効率的になる。