--- android/TrainInfoService/src/dk/thoerup/traininfoservice/DumpResultSet.java 2010/05/07 17:30:07 715
+++ android/TrainInfoService/src/dk/thoerup/traininfoservice/DumpResultSet.java 2010/07/05 09:48:06 958
@@ -5,12 +5,15 @@
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
+import java.util.Date;
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={"/DumpResultSet"})
public class DumpResultSet extends HttpServlet {
public DumpResultSet() {
@@ -58,7 +61,8 @@
sb.append("\n");
}
sb.append("");
- sb.append("Rowcount: ").append(count);
+ sb.append("Rowcount: ").append(count).append("
\n");
+ sb.append("Generated: ").append(new Date()).append("
\n");
} catch (Exception e) {
throw new ServletException(e);
} finally {
@@ -77,10 +81,41 @@
conn.close();
} catch (Exception e) {}
}
+ return sb.toString();
+ }
+
+ String dumpUpdate(String query) throws ServletException {
+ StringBuilder sb = new StringBuilder();
+
+ Connection conn = null;
+ Statement stmt = null;
+ try {
+ conn = DBConnection.getConnection();
+ stmt = conn.createStatement();
+ stmt.execute(query);
+ int count = stmt.getUpdateCount();
+
+ sb.append("
").append(query).append("
");
+ sb.append("Affected rows: ").append(count);
+ } catch (Exception e) {
+ throw new ServletException(e);
+ } finally {
+ try {
+ if (stmt != null && !stmt.isClosed())
+ stmt.close();
+ } catch (Exception e) {}
+
+ try {
+ if (conn != null && !conn.isClosed())
+ conn.close();
+ } catch (Exception e) {}
+ }
return sb.toString();
}
+
+
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String dump = req.getParameter("dump");
@@ -106,10 +141,29 @@
res = dumpResultset("SELECT * FROM trainstations WHERE address IS NULL or address = '' ");
} else if (dump.equals("aliases")) {
res = dumpResultset("SELECT * FROM trainstations WHERE aliases IS NOT null");
+ } else if (dump.equals("updatecoords")) {
+ res = dumpUpdate("UPDATE trainstations SET earth_coord = ll_to_earth(latitude,longitude)");
+ } else if (dump.equals("trainstatistics")) {
+ res = dumpResultset("SELECT statisticsdate, location+name+favorites AS station, location,name,favorites,departure,depcache,deperror,timetable,timecache,timeerror " +
+ "FROM trainstatistics ORDER BY statisticsdate DESC");
+ } else if (dump.equals("trainstatistics_avg")) {
+ res = dumpResultset("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");
}
}
if (res == null) {
- res = "All
All with links
Missing coords
Duplicate stations
Disabled stations
No address
Has aliases";
+ res = "All
" +
+ "All with links
" +
+ "Missing coords
" +
+ "Duplicate stations
" +
+ "Disabled stations
" +
+ "No address
" +
+ "Has aliases
" +
+ "update coords
" +
+ "statistics
" +
+ "stats_avg
";
}
resp.setContentType("text/html");