Skip to content

Correción de OCP en clase Admi.java #8

@marandradec

Description

@marandradec

Problema actual

En la clase Admin.java existe una dependencia directa de MySQL y de consultas concretas mediante DriverManager.
Esto hace que la clase sea difícil de mantener y no flexible si se desea cambiar la base de datos en el futuro.


Solución planeada: Separar la conexión usando una interfaz

1️. Crear una interfaz para manejar la conexión

public interface DatabaseConnection {
    Connection getConnection() throws Exception;
}

2️. Crear la implementación concreta para MySQL

public class MySQLConnection implements DatabaseConnection {
    private static final String URL = "jdbc:mysql://localhost:3306/hotel";
    private static final String USER = "root";
    private static final String PASSWORD = "Sudhir@123";

    @Override
    public Connection getConnection() throws Exception {
        Class.forName("com.mysql.cj.jdbc.Driver");
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }
}

3. Modificar Admin.java para usar la interfaz

//Cambiar:
Connection con = DriverManager.getConnection(...);
//por:
DatabaseConnection db = new MySQLConnection();
Connection con = db.getConnection();

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions