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();
Problema actual
En la clase
Admin.javaexiste una dependencia directa de MySQL y de consultas concretas medianteDriverManager.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
2️. Crear la implementación concreta para MySQL
3. Modificar Admin.java para usar la interfaz