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 {
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("").append( meta.getColumnName(i)).append(" | ");
}
sb.append("
");
while(rs.next())
{
sb.append("");
for (int i=1; i<=columns; i++) {
sb.append("").append(rs.getString(i)).append(" | ");
}
sb.append("
");
}
sb.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 = "invalid dump parameter";
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");
}
resp.setContentType("text/html");
resp.getWriter().println(res);
}
}