@Override
public HashMap<String, ArrayList> getMeasurementsByDateRange(Date startDate, Date endDate, Classroom classroom) {
HashMap<String, ArrayList> MeasurementsByDateRange = new HashMap();
ArrayList<Double> co2 = new ArrayList<>();
ArrayList<Double> humidity = new ArrayList<>();
ArrayList<Double> temperature = new ArrayList<>();
PreparedStatement statement;
ResultSet resultSet;
try {
statement = connection.prepareStatement("SELECT co2.co2Value,humidity.humidityValue, temperature.temperatureValue, classroom.name, measurement.timestamp FROM kelvin.measurement\n"
+ "inner JOIN classroom on classroomId = measurement.classroomId\n"
+ " INNER JOIN co2 ON measurement.id = co2.measurementId\n"
+ " INNER JOIN humidity ON measurement.id = humidity.measurementId\n"
+ " INNER JOIN temperature ON temperature.id = temperature.measurementId\n"
+ " \n"
+ " WHERE (timestamp BETWEEN ? AND ?)");
statement.setDate(1, new java.sql.Date(startDate.getTime()));
statement.setDate(2, new java.sql.Date(endDate.getTime()));
resultSet = statement.executeQuery();
while (resultSet.next()) {
Double co2Value = resultSet.getDouble("co2Value");
Double humidityValue = resultSet.getDouble("humidityValue");
Double temperatureValue = resultSet.getDouble("temperatureValue");
co2.add(co2Value);
humidity.add(humidityValue);
temperature.add(temperatureValue);
}
MeasurementsByDateRange.put("co2Value", co2);
MeasurementsByDateRange.put("humidityValue", humidity);
MeasurementsByDateRange.put("temperatureValue", temperature);
} catch (SQLException ex) {
Logger.getLogger(MySqlMeasurementDAO.class.getName()).log(Level.SEVERE, null, ex);
}
return MeasurementsByDateRange;
}