LoginSignup
0
0

【JavaGold】Connectionインタフェース

Posted at

概要

DBMS(DataBaseManagementSystem)1との接続を管理するインタフェース。
主な役割は、以下のようなデータベースとの接続に関連する操作を提供することである。

主な役割

  1. データベースへの接続の確立と切断
  2. SQLクエリの実行
  3. トランザクションの制御

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ブロックを抜ける際に、接続が自動的に閉じられる。
従って、明示的に接続を切断するコードを記述する必要はない。

これにより、コードがよりシンプルで効率的になる。

  1. 多くのデータが集まった時にデータを管理し、操作するためのソフトウェア。

  2. インタフェースを実装したクラスを指す。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0