// インターフェイスの宣言
interface DatabaseConnection {
// データベースへの接続
void connect();
// クエリの実行
void executeQuery(String query);
// 接続を切断
void disconnect();
}
// MySQLデータベースを扱うクラス
class MySQLDatabaseConnection implements DatabaseConnection {
@Override
public void connect() {
// MySQLデータベースへの接続ロジック
System.out.println("Connected to MySQL database.");
}
@Override
public void executeQuery(String query) {
// MySQLデータベースでクエリを実行するロジック
System.out.println("Executing query in MySQL: " + query);
}
@Override
public void disconnect() {
// MySQLデータベースから切断するロジック
System.out.println("Disconnected from MySQL database.");
}
}
// PostgreSQLデータベースを扱うクラス
class PostgreSQLDatabaseConnection implements DatabaseConnection {
@Override
public void connect() {
// PostgreSQLデータベースへの接続ロジック
System.out.println("Connected to PostgreSQL database.");
}
@Override
public void executeQuery(String query) {
// PostgreSQLデータベースでクエリを実行するロジック
System.out.println("Executing query in PostgreSQL: " + query);
}
@Override
public void disconnect() {
// PostgreSQLデータベースから切断するロジック
System.out.println("Disconnected from PostgreSQL database.");
}
}
// メインクラス
public class Main {
public static void main(String[] args) {
// MySQLデータベースを扱うクラスの利用例
DatabaseConnection mysqlConnection = new MySQLDatabaseConnection();
mysqlConnection.connect();
mysqlConnection.executeQuery("SELECT * FROM users");
mysqlConnection.disconnect();
// PostgreSQLデータベースを扱うクラスの利用例
DatabaseConnection postgresConnection = new PostgreSQLDatabaseConnection();
postgresConnection.connect();
postgresConnection.executeQuery("SELECT * FROM employees");
postgresConnection.disconnect();
}
}
この例では、DatabaseConnection
インターフェイスを宣言し、それを実装する MySQLDatabaseConnection
および PostgreSQLDatabaseConnection
クラスを作成しています。各クラスはデータベースへの接続、クエリの実行、接続の切断などの操作を行うメソッドを提供しています。
データベース連携のためのインターフェイス
「データベース連携のためのインターフェイス」は、Javaプログラムがデータベースとやり取りするための共通の振る舞いを定義するためのインターフェイスです。このようなインターフェイスを使うことで、異なる種類のデータベース(例: MySQL、PostgreSQL)と対話するクラスを統一的な方法で作成できます。
以下は解説です:
- DatabaseConnection インターフェイス:
- connect() メソッド: データベースに接続するためのメソッド。具体的なデータベース接続の実装は各クラスに委ねられます。
- executeQuery(String query) メソッド: データベースに対してクエリを実行するためのメソッド。SQLクエリや他のデータベース固有のクエリを引数として受け取ります。
- disconnect() メソッド: データベースから切断するためのメソッド。データベース接続を解放し、リソースを開放します。
- MySQLDatabaseConnection クラス:
- DatabaseConnection インターフェイスを実装:
implements DatabaseConnection
として、DatabaseConnection
インターフェイスのメソッドを実装します。 - MySQL に特有のデータベース接続の実装:
connect()
、executeQuery(String query)
、disconnect()
メソッドをMySQLデータベースに対応するように実装します。
- DatabaseConnection インターフェイスを実装:
- PostgreSQLDatabaseConnection クラス:
- DatabaseConnection インターフェイスを実装:
implements DatabaseConnection
として、DatabaseConnection
インターフェイスのメソッドを実装します。 - PostgreSQL に特有のデータベース接続の実装:
connect()
、executeQuery(String query)
、disconnect()
メソッドをPostgreSQLデータベースに対応するように実装します。
- DatabaseConnection インターフェイスを実装:
- メインクラス (Main クラス):
DatabaseConnection
インターフェイスを使用して、異なるデータベースと対話するためのクラスを作成および利用します。MySQLDatabaseConnection
とPostgreSQLDatabaseConnection
のインスタンスを作成し、connect()
、executeQuery(String query)
、disconnect()
メソッドを呼び出して、各データベースとのやり取りをシンプルに行います。
このようなデータベース連携のためのインターフェイスと実装クラスの組み合わせを使用すると、アプリケーションの拡張性が向上し、異なるデータベースとの切り替えが容易になります。