// インターフェイスã®å®£è¨€
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()メソッドを呼ã³å‡ºã—ã¦ã€å„データベースã¨ã®ã‚„りå–りをシンプルã«è¡Œã„ã¾ã™ã€‚
ã“ã®ã‚ˆã†ãªãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹é€£æºã®ãŸã‚ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスã¨å®Ÿè£…クラスã®çµ„ã¿åˆã‚ã›ã‚’使用ã™ã‚‹ã¨ã€ã‚¢ãƒ—ãƒªã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã®æ‹¡å¼µæ€§ãŒå‘上ã—ã€ç•°ãªã‚‹ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã¨ã®åˆ‡ã‚Šæ›¿ãˆãŒå®¹æ˜“ã«ãªã‚Šã¾ã™ã€‚
「017 インターフェイスã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント