package dk.thoerup.traininfoservice; import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class DumpResultSet extends HttpServlet { public DumpResultSet() { super(); } private static final long serialVersionUID = 1L; String dumpResultset(String sql) throws ServletException { StringBuilder sb = new StringBuilder(); Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = DBConnection.getConnection(); stmt = conn.createStatement(); rs = stmt.executeQuery(sql); ResultSetMetaData meta = rs.getMetaData(); int columns = meta.getColumnCount(); sb.append("

").append(sql).append("

"); sb.append(""); for (int i=1; i<=columns; i++) { sb.append(""); } sb.append(""); while(rs.next()) { sb.append(""); for (int i=1; i<=columns; i++) { sb.append(""); } sb.append(""); } sb.append("
").append( meta.getColumnName(i)).append("
").append(rs.getString(i)).append("
"); } catch (Exception e) { throw new ServletException(e); } finally { try { if (rs != null && !rs.isClosed()) rs.close(); } catch (Exception e) {} 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"); String res = null; if (dump != null) { if (dump.equals("all")) { res = dumpResultset("SELECT * FROM trainstations"); } else if (dump.equals("coords")) { res = dumpResultset("SELECT * FROM trainstations WHERE latitude IS NULL OR longitude IS NULL"); } else if (dump.equals("duplicate")) { res = dumpResultset("SELECT name,count(*) FROM trainstations GROUP BY name HAVING count(*) > 1"); } } if (res == null) { res = "All
Missing coords
Duplicate stations"; } resp.setContentType("text/html"); resp.getWriter().println(res); } }