import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import com.brainysoftware.java.StringUtil;
public class SQLToolServlet extends HttpServlet {
/**Load the JDBC driver*/
public void init() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("JDBC driver loaded");
}
catch (ClassNotFoundException e) {
System.out.println(e.toString());
}
}
/**Process the HTTP Get request*/
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
sendSqlForm(request, response);
}
/**Process the HTTP Post request*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
sendSqlForm(request, response);
}
/**Send the form where the user can type in
* an SQL statement to be processed
*/
private void sendSqlForm(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println("
");
out.println("SQL Tool Servlet");
out.println("");
out.println("");
out.println("
SQL Tool
");
out.println("
Please type your SQL statement in the following box.");
out.println("
");
out.println("
");
out.println("
");
out.println("
");
out.println("
");
if (sql!=null) {
executeSql(sql.trim(), response);
}
out.println("");
out.println("");
}
/**execute the SQL */
public void executeSql(String sql, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
try {
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:JavaWeb");
System.out.println("got connection");
Statement s = con.createStatement();
if (sql.toUpperCase().startsWith("SELECT")) {
out.println("");
ResultSet rs = s.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
// Write table headings
int columnCount = rsmd.getColumnCount();
out.println("");
for (int i=1; i<=columnCount; i++) {
out.println("" + rsmd.getColumnName(i) + " | \n");
}
out.println("
");
while (rs.next()) {
out.println("");
for (int i=1; i<=columnCount; i++) {
out.println("" + StringUtil.encodeHtmlTag(rs.getString(i)) + " | " );
}
out.println("
");
}
rs.close();
out.println("
");
}
else {
int i = s.executeUpdate(sql);
out.println("Record(s) affected: " + i);
}
s.close();
con.close();
out.println("");
}
catch (SQLException e) {
out.println("Error");
out.println("
");
out.println(e.toString());
}
catch (Exception e) {
out.println("Error");
out.println("
");
out.println(e.toString());
}
}
}