testsql.jsp
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class SqlGatewayServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String sqlStatement = request.getParameter("sqlStatement");
String sqlResult = "";
try {
// load the driver
Class.forName("com.mysql.jdbc.Driver");
// get a connection
String dbURL = "jdbc:mysql://localhost:3306/cs4010";
String username = "cs4010";
String password = "cs4010";
Connection connection = DriverManager.getConnection(
dbURL, username, password);
// create a statement
Statement statement = connection.createStatement();
// parse the SQL string
sqlStatement = sqlStatement.trim();
if (sqlStatement.length() >= 6) {
String sqlType = sqlStatement.substring(0, 6);
if (sqlType.equalsIgnoreCase("select")) {
// create the HTML for the result set
ResultSet resultSet
= statement.executeQuery(sqlStatement);
sqlResult = SQLUtil.getHtmlTable(resultSet);
resultSet.close();
} else {
int i = statement.executeUpdate(sqlStatement);
if (i == 0) { // a DDL statement
sqlResult =
"<p>The statement executed successfully.</p>";
} else { // an INSERT, UPDATE, or DELETE statement
sqlResult =
"<p>The statement executed successfully.<br>"
+ i + " row(s) affected.</p>";
}
}
}
statement.close();
connection.close();
} catch (ClassNotFoundException e) {
sqlResult = "<p>Error loading the databse driver: <br>"
+ e.getMessage() + "</p>";
} catch (SQLException e) {
sqlResult = "<p>Error executing the SQL statement: <br>"
+ e.getMessage() + "</p>";
}
HttpSession session = request.getSession();
session.setAttribute("sqlResult", sqlResult);
session.setAttribute("sqlStatement", sqlStatement);
String url = "/testsql.jsp";
getServletContext()
.getRequestDispatcher(url)
.forward(request, response);
}
}