//DBServ.java //A simple database servlet //Demonstrates combining JDBC, servlet capabilities //Andy Harris import java.io.*; import javax.servlet.http.*; import javax.servlet.*; import java.sql.*; import sun.jdbc.odbc.*; public class DBServ extends HttpServlet{ ResultSet rs; Statement stmt; Connection con; public void init(ServletConfig config) throws ServletException{ super.init(config); //handle setting up database connection new JdbcOdbcDriver(); try{ //prepare the connection parameters String url = "jdbc:odbc:practice"; String user = ""; String password = ""; //make the connection con = DriverManager.getConnection(url, user, password); //System.out.println("Made the connection to the database"); //generate a statement object stmt = con.createStatement(); } catch (Exception e) { System.out.println(e.getMessage()); } // end try } // end init protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ //assuming an empty form here... response.setContentType("text/html"); PrintWriter out = response.getWriter(); mainMenu(out); } // end doGet protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ response.setContentType("text/html"); PrintWriter out = response.getWriter(); String mode = request.getParameter("mode"); out.println(""); out.println(""); out.println("Database main page"); out.println(""); out.println(""); out.println(""); out.println("
"); out.println("You chose " + mode); if (mode.equalsIgnoreCase("mainMenu")){ mainMenu(out); } else if (mode.equalsIgnoreCase("viewPeople")){ viewPeople(out); } else if (mode.equalsIgnoreCase("viewCity")){ viewCity(out); } else if (mode.equalsIgnoreCase("viewData")){ viewData(out); } else if (mode.equalsIgnoreCase("addPeople")){ addPeople(out); } else if (mode.equalsIgnoreCase("insertPerson")){ insertPerson(out, request); } else if (mode.equalsIgnoreCase("addCity")){ addCity(out); } else if (mode.equalsIgnoreCase("insertCity")){ insertCity(out, request); } //end if out.println("
"); out.println(""); } // end doPost public void mainMenu(PrintWriter out){ //write out opening web page out.println(""); out.println(""); out.println("Database main page"); out.println(""); out.println(""); out.println(""); out.println(""); out.println("

Choose an action

"); out.println("View people table
"); out.println(""); out.println("View city table
"); out.println(""); out.println("View aggregate data
"); out.println(""); out.println("Add a person
"); out.println(""); out.println("Add a city
"); out.println(""); out.println(""); out.println("
"); out.println(""); out.println(""); out.close(); } // end mainMenu public void addPeople(PrintWriter out){ out.println(""); out.println(""); out.println("Add a person"); out.println(""); out.println(""); out.println(""); out.println("
"); out.println(""); out.println(""); out.println(" "); out.println(" "); out.println(""); out.println(""); out.println(""); out.println(" "); out.println(" "); out.println(""); out.println(""); out.println(" "); out.println(" "); out.println(""); out.println(""); out.println(" "); out.println(" "); out.println("
Fieldvalue
First Name"); out.println("
Last Name"); out.println("
City code"); out.println("
"); out.println(""); out.println(""); out.println("
"); out.println(""); out.println(""); out.close(); } // end addPeople public void addCity(PrintWriter out){ out.println(""); out.println(""); out.println("Add a city"); out.println(""); out.println(""); out.println(""); out.println("
"); out.println(""); out.println(""); out.println(" "); out.println(" "); out.println(""); out.println(""); out.println(""); out.println(" "); out.println(" "); out.println(""); out.println(""); out.println(" "); out.println(" "); out.println(""); out.println("
Fieldvalue
City ID"); out.println("
City Name"); out.println("
"); out.println(""); out.println(""); out.println("
"); out.println(""); out.println(""); out.close(); } // end addPeople public void insertCity(PrintWriter out, HttpServletRequest request){ String insertString = "Insert into city values("; insertString += "'" + request.getParameter("txtID") + "', "; insertString += "'" + request.getParameter("txtName") + "'); "; out.println(); out.println("

Executing query:

"); out.println(insertString); try{ stmt.executeUpdate(insertString); } catch (SQLException e){ System.out.println(e.getMessage()); e.printStackTrace(); } // end try } //end insertCity public void insertPerson(PrintWriter out, HttpServletRequest request){ String insertString = "Insert into people values("; insertString += "'" + request.getParameter("txtLName") + "', "; insertString += "'" + request.getParameter("txtFName") + "', "; insertString += request.getParameter("txtCity") + ")"; out.println(); out.println("

Executing query:

"); out.println(insertString); try{ stmt.executeUpdate(insertString); } catch (SQLException e){ System.out.println(e.getMessage()); e.printStackTrace(); } // end try } //end insertPerson public void viewPeople(PrintWriter out){ //runs a query on people table, spits out result out.println(exQ("Select * from people")); } // end view people public void viewCity(PrintWriter out){ //runs a query on city table, spits out result out.println(exQ("Select * from city")); } // end view people public void viewData(PrintWriter out){ //runs a joined query on people, city table, spits out result out.println(exQ("Select FName, LName, City.name from people INNER JOIN city on people.city = city.id")); } // end view people public String exQ(String query){ //handles all queries which use executeQuery String result = ""; System.out.println(query); try { ResultSet rs = stmt.executeQuery(query); result = createHTMLTable(rs); } catch (SQLException e){ System.out.println(e.getMessage()); e.printStackTrace(); } // end try return result; } // end exQ public String createHTMLTable(ResultSet rs) throws SQLException{ //takes in a resultset and prints out an HTML table ResultSetMetaData rsmd = rs.getMetaData(); String HTMLOut = ""; HTMLOut += " \n"; HTMLOut += " \n"; //get column headings for (int column = 1; column <= rsmd.getColumnCount(); column++){ HTMLOut += " \n"; } // end for loop HTMLOut += "\n"; //for each row--- //rs.first(); while (rs.next()){ HTMLOut += " \n"; //print each field for (int column = 1; column <= rsmd.getColumnCount(); column++){ HTMLOut += " \n"; } // end for loop HTMLOut += " \n"; } // end while loop1 HTMLOut += "
" + rsmd.getColumnName(column) + "
" + rs.getString(column) + "
\n"; return HTMLOut; } // end printTable } // end class def