home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 November / PCONLINE_11_99.ISO / filesbbs / OS2 / APCHSSL2.ZIP / OS2HTTPD / servlets / MySQLServlet.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-05-18  |  6.3 KB  |  180 lines

  1. import java.io.IOException;
  2. import java.sql.Connection;
  3. import java.sql.DatabaseMetaData;
  4. import java.sql.DriverManager;
  5. import java.sql.ResultSet;
  6. import java.sql.ResultSetMetaData;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9. import java.util.Date;
  10. import javax.servlet.ServletConfig;
  11. import javax.servlet.ServletException;
  12. import javax.servlet.ServletOutputStream;
  13. import javax.servlet.ServletRequest;
  14. import javax.servlet.ServletResponse;
  15. import javax.servlet.http.HttpServlet;
  16.  
  17. public class MySQLServlet extends HttpServlet {
  18.    private Connection m_connection;
  19.    private ResultSet m_resultSet;
  20.    private Statement m_statement;
  21.    private ServletOutputStream m_outstream;
  22.  
  23.    private void connectToDatabase(String var1, String var2, String var3, String var4, ServletResponse var5) {
  24.       try {
  25.          Class.forName(var2);
  26.          this.m_connection = DriverManager.getConnection(var1, var3, var4);
  27.       } catch (SQLException var7) {
  28.          this.processSQLException(var7, var5, "CON");
  29.       } catch (Exception var8) {
  30.          ((Throwable)var8).printStackTrace();
  31.       }
  32.    }
  33.  
  34.    public void destroy() {
  35.       try {
  36.          this.m_connection.commit();
  37.          this.m_resultSet.close();
  38.          this.m_resultSet = null;
  39.          this.m_statement.close();
  40.          this.m_statement = null;
  41.          this.m_connection.close();
  42.          this.m_connection = null;
  43.       } catch (SQLException var1) {
  44.          System.err.println("\n*** SQLException caught ***\n");
  45.       }
  46.    }
  47.  
  48.    private void executeTheQuery(String var1, ServletResponse var2) {
  49.       try {
  50.          this.m_statement = this.m_connection.createStatement();
  51.          this.m_resultSet = this.m_statement.executeQuery(var1);
  52.       } catch (SQLException var4) {
  53.          this.processSQLException(var4, var2, "QUERY");
  54.       }
  55.    }
  56.  
  57.    public void init(ServletConfig var1) {
  58.       try {
  59.          super.init(var1);
  60.       } catch (ServletException var3) {
  61.          System.err.println("ServletException: " + ((Throwable)var3).getMessage());
  62.       }
  63.    }
  64.  
  65.    private void outResultSet(ServletResponse var1, String var2) throws SQLException {
  66.       try {
  67.          this.m_outstream = var1.getOutputStream();
  68.          var1.setContentType("text/html");
  69.          this.m_outstream.println("<html>");
  70.          this.m_outstream.println("<head><title>A Data Access Servlet using Pure JDBC</title></head>");
  71.  
  72.          try {
  73.             ResultSetMetaData var3 = this.m_resultSet.getMetaData();
  74.             DatabaseMetaData var4 = this.m_connection.getMetaData();
  75.             int var5 = var3.getColumnCount();
  76.             this.m_outstream.println("JDBC DATABASE CONNECTION DETAILS:");
  77.             this.m_outstream.println("<BR>");
  78.             this.m_outstream.println("<BR>Current date and time: " + (new Date()).toString());
  79.             this.m_outstream.println("<BR>Connection URL: " + var4.getURL());
  80.             this.m_outstream.println("<BR>Driver: " + var4.getDriverName());
  81.             this.m_outstream.println("<BR>Version: " + var4.getDriverVersion());
  82.             this.m_outstream.println("<BR>User Name: " + var4.getUserName());
  83.             this.m_outstream.println("<BR>Driver Major Version: " + var4.getDriverMajorVersion());
  84.             this.m_outstream.println("<BR>Driver Minor Version: " + var4.getDriverMinorVersion());
  85.             this.m_outstream.println("<BR>Database Product Name: " + var4.getDatabaseProductName());
  86.             this.m_outstream.println("<BR>Database Product Version: " + var4.getDatabaseProductVersion());
  87.             this.m_outstream.println("<BR>SQL query or update command processed by servlet: ");
  88.             this.m_outstream.println("<BR><BR>");
  89.             this.m_outstream.println("<TABLE>");
  90.             this.m_outstream.println("<TABLE BORDER=1>");
  91.             String var6 = "TABLE: TEST ***** ACTION TAKEN: " + var2;
  92.             this.m_outstream.println("<CAPTION>" + var6 + "</CAPTION>");
  93.  
  94.             for(int var7 = 1; var7 <= var5; ++var7) {
  95.                this.m_outstream.println("<TH>" + var3.getColumnLabel(var7));
  96.             }
  97.  
  98.             boolean var8 = this.m_resultSet.next();
  99.  
  100.             for(byte[] var9 = new byte[10]; var8; var8 = this.m_resultSet.next()) {
  101.                this.m_outstream.println("<TR>");
  102.  
  103.                for(int var13 = 1; var13 <= var5; ++var13) {
  104.                   if (var13 == 1) {
  105.                      var9 = this.m_resultSet.getBytes(var13);
  106.                      String var10 = new String(var9, "ibm819");
  107.                      this.m_outstream.println("<TD>" + var10);
  108.                   } else {
  109.                      this.m_outstream.println("<TD>" + this.m_resultSet.getString(var13));
  110.                   }
  111.                }
  112.             }
  113.  
  114.             this.m_outstream.println("</FONT>");
  115.             this.m_outstream.println("</TABLE>");
  116.          } catch (SQLException var11) {
  117.             this.processSQLException(var11, var1, "OUT");
  118.          }
  119.  
  120.          this.m_outstream.println("</body></html>");
  121.          this.m_outstream.flush();
  122.          this.m_outstream.close();
  123.       } catch (IOException var12) {
  124.          System.err.println("\n*** IOException caught ***\n");
  125.          System.err.println("IOException: " + ((Throwable)var12).toString());
  126.       }
  127.    }
  128.  
  129.    private void processSQLException(SQLException var1, ServletResponse var2, String var3) {
  130.       try {
  131.          this.m_outstream = var2.getOutputStream();
  132.          var2.setContentType("text/html");
  133.          this.m_outstream.println("<html>");
  134.          this.m_outstream.println("<head><title>Servlet threw an SQLException</title></head>");
  135.          this.m_outstream.println("<body BGCOLOR=#000000 TEXT=#C0C0C0>");
  136.          this.m_outstream.println("<P>*** An SQLException was caught:" + var3 + " ***</P>");
  137.  
  138.          while(var1 != null) {
  139.             this.m_outstream.println("<P>SQLState: " + var1.getSQLState() + "</P>");
  140.             this.m_outstream.println("<P>Message:  " + ((Throwable)var1).getMessage() + "</P>");
  141.             this.m_outstream.println("<P>Vendor:   " + var1.getErrorCode() + "</P>");
  142.             var1 = var1.getNextException();
  143.             this.m_outstream.flush();
  144.             this.m_outstream.close();
  145.          }
  146.  
  147.       } catch (IOException var5) {
  148.          System.err.println("\n*** IOException caught ***\n");
  149.          System.err.println("IOException: " + ((Throwable)var5).toString());
  150.       }
  151.    }
  152.  
  153.    public void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException {
  154.       String var3 = "org.gjt.mm.mysql.Driver";
  155.       String var4 = "jdbc:mysql://202.120.182.10:3306/test";
  156.       if (this.m_connection == null) {
  157.          this.connectToDatabase(var4, var3, "dehua", "yangdehua", var2);
  158.          this.executeTheQuery("SELECT * FROM test", var2);
  159.  
  160.          try {
  161.             this.outResultSet(var2, "User-defined Query");
  162.          } catch (SQLException var7) {
  163.             this.processSQLException(var7, var2, "AAA");
  164.          }
  165.       }
  166.  
  167.       try {
  168.          this.m_connection.commit();
  169.          this.m_resultSet.close();
  170.          this.m_resultSet = null;
  171.          this.m_statement.close();
  172.          this.m_statement = null;
  173.          this.m_connection.close();
  174.          this.m_connection = null;
  175.       } catch (SQLException var6) {
  176.          this.processSQLException(var6, var2, "SERV");
  177.       }
  178.    }
  179. }
  180.