/[projects]/android/TrainInfoServiceGoogle/src/dk/thoerup/traininfoservice/DumpResultSet.java
ViewVC logotype

Contents of /android/TrainInfoServiceGoogle/src/dk/thoerup/traininfoservice/DumpResultSet.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1080 - (show annotations) (download)
Mon Sep 20 20:11:55 2010 UTC (13 years, 7 months ago) by torben
File size: 5042 byte(s)
Add a copy with partial support for google app engine
1 package dk.thoerup.traininfoservice;
2
3 import java.io.IOException;
4 import java.sql.Connection;
5 import java.sql.ResultSet;
6 import java.sql.ResultSetMetaData;
7 import java.sql.Statement;
8 import java.util.Date;
9
10 import javax.servlet.ServletException;
11 import javax.servlet.http.HttpServlet;
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.http.HttpServletResponse;
14
15
16 public class DumpResultSet extends HttpServlet {
17
18 public DumpResultSet() {
19 super();
20 }
21
22
23 private static final long serialVersionUID = 1L;
24
25 String dumpResultset(String sql) throws ServletException {
26 StringBuilder sb = new StringBuilder();
27
28 Connection conn = null;
29 Statement stmt = null;
30 ResultSet rs = null;
31
32 try {
33 int count = 0;
34
35 conn = DBConnection.getConnection();
36 stmt = conn.createStatement();
37
38 rs = stmt.executeQuery(sql);
39 ResultSetMetaData meta = rs.getMetaData();
40 int columns = meta.getColumnCount();
41
42 sb.append("<h2>").append(sql).append("</h2>");
43 sb.append("<table border=1><tr>");
44 for (int i=1; i<=columns; i++) {
45 sb.append("<th>").append( meta.getColumnName(i)).append("</th>");
46 }
47 sb.append("</tr>\n\n");
48 while(rs.next())
49 {
50 count++;
51
52 sb.append("<tr>");
53 for (int i=1; i<=columns; i++) {
54 String value = rs.getString(i);
55 if (value != null) {
56 value = value.replace("\n", "<br>");
57 }
58 sb.append("<td>").append( value ).append("</td>");
59 }
60 sb.append("</tr>\n");
61 }
62 sb.append("</table>");
63 sb.append("Rowcount: ").append(count).append("<br>\n");
64 sb.append("Generated: ").append(new Date()).append("<br>\n");
65 } catch (Exception e) {
66 throw new ServletException(e);
67 } finally {
68
69 try {
70 if (rs != null && !rs.isClosed())
71 rs.close();
72 } catch (Exception e) {}
73 try {
74 if (stmt != null && !stmt.isClosed())
75 stmt.close();
76 } catch (Exception e) {}
77
78 try {
79 if (conn != null && !conn.isClosed())
80 conn.close();
81 } catch (Exception e) {}
82 }
83 return sb.toString();
84 }
85
86 String dumpUpdate(String query) throws ServletException {
87 StringBuilder sb = new StringBuilder();
88
89 Connection conn = null;
90 Statement stmt = null;
91 try {
92 conn = DBConnection.getConnection();
93 stmt = conn.createStatement();
94 stmt.execute(query);
95 int count = stmt.getUpdateCount();
96
97 sb.append("<h2>").append(query).append("</h2>");
98 sb.append("Affected rows: ").append(count);
99 } catch (Exception e) {
100 throw new ServletException(e);
101 } finally {
102 try {
103 if (stmt != null && !stmt.isClosed())
104 stmt.close();
105 } catch (Exception e) {}
106
107 try {
108 if (conn != null && !conn.isClosed())
109 conn.close();
110 } catch (Exception e) {}
111 }
112
113 return sb.toString();
114 }
115
116
117
118 @Override
119 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
120 String dump = req.getParameter("dump");
121
122 String res = null;
123
124 if (dump != null) {
125 if (dump.equals("all")) {
126 res = dumpResultset("SELECT * FROM trainstations ORDER BY id");
127 } else if (dump.equals("coords")) {
128 res = dumpResultset("SELECT * FROM trainstations WHERE latitude IS NULL OR longitude IS NULL ORDER BY id");
129 } else if (dump.equals("duplicate")) {
130 res = dumpResultset("SELECT name,count(*) FROM trainstations GROUP BY name HAVING count(*) > 1");
131 } else if (dump.equals("allfull")) {
132 res = dumpResultset("select *, " +
133 "'<a href=\"http://maps.google.dk/?q=' ||latitude || ',' || longitude || '\">Maps</a>' AS maps, " +
134 "'<a href=\"http://www.bane.dk/visStation.asp?ArtikelID=4275&W=FJRN&S=' || stationcode_fjrn || '\">Bane.dk Fjern</a>' as banedk1, " +
135 "'<a href=\"http://www.bane.dk/visStation.asp?ArtikelID=4275&W=S2&S=' || stationcode_stog || '\">Bane.dk stog</a>' as banedk2 " +
136 "FROM trainstations ORDER BY id");
137 } else if (dump.equals("disabled")) {
138 res = dumpResultset("SELECT * FROM trainstations WHERE enabled = false ORDER BY id");
139 } else if (dump.equals("noaddress")) {
140 res = dumpResultset("SELECT * FROM trainstations WHERE address IS NULL or address = '' ");
141 } else if (dump.equals("aliases")) {
142 res = dumpResultset("SELECT * FROM trainstations WHERE aliases IS NOT null");
143 } else if (dump.equals("updatecoords")) {
144 res = dumpUpdate("UPDATE trainstations SET earth_coord = ll_to_earth(latitude,longitude)");
145 }
146 }
147 if (res == null) {
148 res = "<a href=DumpResultSet?dump=all>All</a><br>" +
149 "<a href=DumpResultSet?dump=allfull>All with links</a><br>" +
150 "<a href=DumpResultSet?dump=coords>Missing coords</a><br>" +
151 "<a href=DumpResultSet?dump=duplicate>Duplicate stations</a><br>" +
152 "<a href=DumpResultSet?dump=disabled>Disabled stations</a><br>" +
153 "<a href=DumpResultSet?dump=noaddress>No address</a><br>" +
154 "<a href=DumpResultSet?dump=aliases>Has aliases</a><br>" +
155 "<a href=DumpResultSet?dump=updatecoords>update coords</a><br>";
156 }
157
158 resp.setContentType("text/html");
159 resp.getWriter().println(res);
160 }
161
162 }

  ViewVC Help
Powered by ViewVC 1.1.20