package dk.thoerup.traininfoservice; import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(urlPatterns={"/SavedStatistics"}) public class SavedStatistics extends HttpServlet { private static final long serialVersionUID = 1L; protected SavedStatBean convertRow(ResultSet res) throws SQLException { SavedStatBean bean = new SavedStatBean(); bean.label = res.getString(1); bean.station = res.getString(2); bean.location = res.getString(3); bean.name = res.getString(4); bean.favorites = res.getString(5); bean.departure = res.getString(6); bean.depcache = res.getString(7); bean.deperror = res.getString(8); bean.timetable = res.getString(9); bean.timecache = res.getString(10); bean.timeerror = res.getString(11); return bean; } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection conn = null; try { conn = DBConnection.getConnection(); Statement stmt = conn.createStatement(); List stats = new ArrayList(); String sqlAvg = "SELECT count(*) AS count, round(avg(location+name+favorites),1) AS station, round(avg(location),1) as location, round(avg(name),1) as name, round(avg(favorites),1) as favorites, " + "round(avg(departure),1) as departure, round(avg(depcache),1) as depcache, round(avg(deperror),1) as deperror, " + "round(avg(timetable),1) as timetable, round(avg(timecache),1) as timecache, round(avg(timeerror),1) as timeerror " + "FROM trainstatistics"; ResultSet resAvg = stmt.executeQuery(sqlAvg); resAvg.next(); SavedStatBean avgBean = convertRow(resAvg); //////////////////////////////////////////////// String SQL = "SELECT statisticsdate, location+name+favorites AS station, location,name,favorites,departure,depcache,deperror,timetable,timecache,timeerror " + "FROM trainstatistics ORDER BY statisticsdate DESC limit 14"; ResultSet res = stmt.executeQuery(SQL); while (res.next()) { SavedStatBean bean = convertRow(res); stats.add(bean); } conn.close(); request.setAttribute("avg", avgBean); request.setAttribute("stats", stats); request.getRequestDispatcher("/savedstatistics.jsp").forward(request, response); } catch (SQLException e) { try { if (conn != null) conn.close(); } catch (SQLException se) {} throw new ServletException(e); } } }