/[projects]/android/TrainInfoService/src/dk/thoerup/traininfoservice/SavedStatistics.java
ViewVC logotype

Contents of /android/TrainInfoService/src/dk/thoerup/traininfoservice/SavedStatistics.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2092 - (show annotations) (download)
Fri Dec 6 08:55:50 2013 UTC (10 years, 5 months ago) by torben
File size: 4267 byte(s)
typo in query
1 package dk.thoerup.traininfoservice;
2
3
4 import java.io.IOException;
5 import java.sql.Connection;
6 import java.sql.ResultSet;
7 import java.sql.SQLException;
8 import java.sql.Statement;
9 import java.util.ArrayList;
10 import java.util.List;
11
12 import javax.servlet.ServletException;
13 import javax.servlet.annotation.WebServlet;
14 import javax.servlet.http.HttpServlet;
15 import javax.servlet.http.HttpServletRequest;
16 import javax.servlet.http.HttpServletResponse;
17
18 import dk.thoerup.traininfoservice.db.DBConnection;
19
20
21 @WebServlet(urlPatterns={"/SavedStatistics"})
22 public class SavedStatistics extends HttpServlet {
23 private static final long serialVersionUID = 1L;
24
25
26 protected SavedStatBean convertRow(ResultSet res) throws SQLException {
27 SavedStatBean bean = new SavedStatBean();
28
29 bean.label = res.getString(1);
30 bean.station = res.getString(2);
31 bean.location = res.getString(3);
32 bean.name = res.getString(4);
33 bean.favorites = res.getString(5);
34 bean.departure = res.getString(6);
35 bean.depcache = res.getString(7);
36 bean.deperror = res.getString(8);
37 bean.timetable = res.getString(9);
38 bean.timecache = res.getString(10);
39 bean.timeerror = res.getString(11);
40
41 return bean;
42
43 }
44
45 List<SavedStatBean> convertResultset(ResultSet res) throws SQLException{
46 List<SavedStatBean> stats = new ArrayList<SavedStatBean>();
47 while (res.next()) {
48 SavedStatBean bean = convertRow(res);
49 stats.add(bean);
50
51 }
52 return stats;
53 }
54
55
56 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
57
58 Connection conn = null;
59 try {
60 conn = DBConnection.getConnection();
61 Statement stmt = conn.createStatement();
62
63
64
65
66 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, " +
67 "round(avg(departure),1) as departure, round(avg(depcache),1) as depcache, round(avg(deperror),1) as deperror, " +
68 "round(avg(timetable),1) as timetable, round(avg(timecache),1) as timecache, round(avg(timeerror),1) as timeerror " +
69 "FROM trainstatistics " +
70 "WHERE statisticsdate <> now()::date ";
71
72 ResultSet resAvg = stmt.executeQuery(sqlAvg);
73 resAvg.next();
74 SavedStatBean avgBean = convertRow(resAvg);
75
76 //////
77 String sql30Avg = "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, " +
78 "round(avg(departure),1) as departure, round(avg(depcache),1) as depcache, round(avg(deperror),1) as deperror, " +
79 "round(avg(timetable),1) as timetable, round(avg(timecache),1) as timecache, round(avg(timeerror),1) as timeerror " +
80 "FROM trainstatistics " +
81 "WHERE statisticsdate < now()::date AND statisticsdate >= (now()::date - interval '30 days')";
82
83 ResultSet res30Avg = stmt.executeQuery(sql30Avg);
84 res30Avg.next();
85 SavedStatBean avg30Bean = convertRow(res30Avg);
86
87 ////////////////////////////////////////////////
88
89 String SQL = "SELECT statisticsdate, location+name+favorites AS station, location,name,favorites,departure,depcache,deperror,timetable,timecache,timeerror " +
90 "FROM trainstatistics ORDER BY statisticsdate DESC limit 14";
91
92
93 ResultSet res = stmt.executeQuery(SQL);
94 List<SavedStatBean> stats = convertResultset(res);
95
96
97 //////////////////////////////////////////////
98
99 SQL = "select statisticsdate,location+name+favorites AS station,location,name,favorites,departure,depcache,deperror,timetable,timecache,timeerror " +
100 "FROM trainstatistics order by departure - deperror desc limit 10";
101 res = stmt.executeQuery(SQL);
102
103 List<SavedStatBean> top10 = convertResultset(res);
104
105
106 conn.close();
107
108
109 request.setAttribute("avg", avgBean);
110 request.setAttribute("avg30", avg30Bean);
111 request.setAttribute("stats", stats);
112 request.setAttribute("top10", top10);
113 request.getRequestDispatcher("/savedstatistics.jsp").forward(request, response);
114
115
116 } catch (SQLException e) {
117 try {
118 if (conn != null) conn.close();
119 } catch (SQLException se) {}
120 throw new ServletException(e);
121 }
122 }
123
124 }

  ViewVC Help
Powered by ViewVC 1.1.20