import java.sql.*; public class HtmlSQLResult { private String sql; private Connection con; public HtmlSQLResult(String sql, Connection con) { this.sql = sql; this.con = con; } public String toString() { // can be called at most once StringBuffer out = new StringBuffer(); // Uncomment the following line to display the SQL command at start of table // out.append("Results of SQL Statement: " + sql + "

\n"); try { Statement stmt = con.createStatement(); if (stmt.execute(sql)) { // There's a ResultSet to be had ResultSet rs = stmt.getResultSet(); out.append("\n"); ResultSetMetaData rsmd = rs.getMetaData(); int numcols = rsmd.getColumnCount(); // Title the table with the result set's column labels out.append(""); for (int i = 1; i <= numcols; i++) out.append("\n"); while(rs.next()) { out.append(""); // start a new row for(int i = 1; i <= numcols; i++) { out.append("\n"); } // End the table out.append("
" + rsmd.getColumnLabel(i)); out.append("
"); // start a new data element Object obj = rs.getObject(i); if (obj != null) out.append(obj.toString()); else out.append(" "); } out.append("
\n"); } else { // There's a count to be had out.append("Records Affected: " + stmt.getUpdateCount()); } } catch (SQLException e) { out.append("

ERROR:

" + e.getMessage()); } return out.toString(); } }