Class MySqlDroneRepository

java.lang.Object
co.edu.poli.sw2Hexagonal.infraestructura.persistencia.MySqlDroneRepository
All Implemented Interfaces:
DroneRepository

public class MySqlDroneRepository extends Object implements DroneRepository
Adaptador de salida — implementa DroneRepository sobre MySQL (JDBC).

Utiliza la conexión administrada por ConexionBD y trabaja sobre la tabla drone, con las columnas id, serial, modelo, fabricante, peso y tipo.

See Also:
  • Field Details

  • Constructor Details

    • MySqlDroneRepository

      public MySqlDroneRepository()
      Crea el repositorio usando la conexión única de ConexionBD.
  • Method Details

    • guardar

      public void guardar(Drone drone) throws SQLException
      Persiste un nuevo dron.
      Specified by:
      guardar in interface DroneRepository
      Parameters:
      drone - dron a guardar (concreto: de agricultura o vigilancia)
      Throws:
      SQLException - si falla la inserción en la tabla drone
    • buscarPorId

      public Drone buscarPorId(String id) throws SQLException
      Busca un dron por su identificador.
      Specified by:
      buscarPorId in interface DroneRepository
      Parameters:
      id - identificador del dron
      Returns:
      dron encontrado, o null si no existe
      Throws:
      SQLException - si falla la consulta
    • buscarTodos

      public List<Drone> buscarTodos() throws SQLException
      Retorna todos los drones registrados.
      Specified by:
      buscarTodos in interface DroneRepository
      Returns:
      lista de drones, vacía si no hay registros
      Throws:
      SQLException - si falla la consulta
    • actualizar

      public void actualizar(Drone drone) throws SQLException
      Actualiza los datos de un dron existente.
      Specified by:
      actualizar in interface DroneRepository
      Parameters:
      drone - dron con los datos actualizados
      Throws:
      SQLException - si falla la actualización o no existe un dron con el id indicado
    • eliminar

      public void eliminar(String id) throws SQLException
      Elimina el dron con el identificador dado.
      Specified by:
      eliminar in interface DroneRepository
      Parameters:
      id - identificador del dron a eliminar
      Throws:
      SQLException - si falla la eliminación o no existe un dron con el id indicado
    • convertirDrone

      private Drone convertirDrone(ResultSet rs) throws SQLException
      Construye un Drone a partir de la fila actual del ResultSet. Como Drone es abstracta, se usa MySqlDroneRepository.DroneBase, que conserva el tipo guardado en la tabla. Cuando se usen las subclases concretas, conviene reemplazarlo por un switch sobre el tipo ("AGRICULTURA" / "VIGILANCIA") que cree la subclase correspondiente.
      Parameters:
      rs - resultado posicionado en la fila a convertir
      Returns:
      dron con los datos de la fila
      Throws:
      SQLException - si falla la lectura de alguna columna