/** * @param id appointment id to search for * @return if the appointment exists it is returned, otherwise null is the result. * @throws PersistenceException if there are complications with the persitance layer */ @Override public Appointment searchByID(int id) throws PersistenceException { LOGGER.info("Searching record in appointment table with id: " + id + ".."); try { searchByIDStm.setInt(1, id); ResultSet rs_searchByID = searchByIDStm.executeQuery(); rs_searchByID.next(); Appointment foundAppointment = null; foundAppointment = new Appointment( rs_searchByID.getInt(1), rs_searchByID.getDate(2), rs_searchByID.getInt(3), rs_searchByID.getInt(4), rs_searchByID.getBoolean(5), rs_searchByID.getBoolean(6)); if (foundAppointment != null) { foundAppointment.setSessionName( trainingsSessionDAO.searchByID(foundAppointment.getSession_id()).getName()); String setNames = ""; if (trainingsSessionDAO.searchByID(foundAppointment.getSession_id()).getExerciseSets() != null) { for (ExerciseSet exerciseSet : trainingsSessionDAO.searchByID(foundAppointment.getSession_id()).getExerciseSets()) { setNames += (exerciseSet.getRepeat() + " " + exerciseSet.getExercise().getName() + '\n'); } } foundAppointment.setSetNames(setNames); foundAppointment.setSession( trainingsSessionDAO.searchByID(foundAppointment.getSession_id())); } LOGGER.info( "Appointment with id: " + id + ", successfully read from database." + foundAppointment); return foundAppointment; } catch (SQLException e) { LOGGER.error("Failed to search for an appointment with id: " + id + ". - " + e.getMessage()); throw new PersistenceException("Failed to search for an appointment with id: " + id + "."); } }
/** * Finds all appointments in the persistence, deleted appointments are ignored. * * @return List of all appointments stored in the persistence * @throws PersistenceException if there are complications with the persitance layer */ @Override public List<Appointment> findAll() throws PersistenceException { LOGGER.info("Finding all records in appointment table.."); try { ResultSet rs_findAll = findAllStm.executeQuery(); List<Appointment> result = new ArrayList<>(); while (rs_findAll.next()) { Appointment appointment = new Appointment( rs_findAll.getInt(1), rs_findAll.getDate(2), rs_findAll.getInt(3), rs_findAll.getInt(4), rs_findAll.getBoolean(5), rs_findAll.getBoolean(6)); appointment.setSessionName( trainingsSessionDAO.searchByID(appointment.getSession_id()).getName()); String setNames = ""; if (trainingsSessionDAO.searchByID(appointment.getSession_id()).getExerciseSets() != null) { for (ExerciseSet exerciseSet : trainingsSessionDAO.searchByID(appointment.getSession_id()).getExerciseSets()) { setNames += (exerciseSet.getRepeat() + " " + exerciseSet.getExercise().getName() + '\n'); } } appointment.setSetNames(setNames); appointment.setSession(trainingsSessionDAO.searchByID(appointment.getSession_id())); result.add(appointment); } LOGGER.info("All record successfully read from appointment table."); return result; } catch (SQLException e) { LOGGER.error("Failed to find all records in appointment table. - " + e.getMessage()); throw new PersistenceException("Failed to find all records in appointment table.", e); } }