El ejemplo de este artículo describe cómo Java implementa JSP para conectarse a la base de datos Oracle utilizando Servelt. Para conectarse a la base de datos en un Servlet, se debe escribir un programa de clase Servlet. Coloque el programa de clase Servlet en el directorio de servlets o clases del servidor WEB. Para llamar al Servlet, debe crear un documento HTML que envíe la solicitud de Servlet. En este ejemplo, el método (Driver)Class.forName(driverName).newInstance() se utiliza para cargar el controlador y establecer una conexión con la base de datos.
El código del programa específico es:
1. La clase Base de datos hereda la clase HttpServlet y tiene dos métodos: doGet() y displayResult(). El código es el siguiente:
La base de datos de clase pública extiende HttpServlet {public void doGet(); public void displayResult (resultados de ResultSet, PrintWriter out);}
2. Establezca una conexión a la base de datos y ejecute la consulta en el método doGet():
public void doGet(){Solicitud HttpServletRequest,respuesta HttpServletResponse}lanza ServletException, IOException{PrintWriter out;String title = "Servlet simple que se conecta a Oracle DB";response.setContentType("text/html;charset=GB2312");out = respuesta.getWriter();out.println("<HTML><HEAD><TITLE>");out.println(title);out.println("</TITLE></HEAD><BODY>");out .println("<H1>" + title + "</H1>");out.println("<P>Esto es resultado de SimpleServlet.");String driverName = "oracle.jdbc.driver.OracleDriver";Controlador d;Conexión con;Declaración stmt;Resultados del conjunto de resultados;try{d = (Driver)Class.forName(driverName).newInstance();con = DiverManager.getConnection("jdbc:oracle:thin:ndb/[email protected]:1521:PC6");stmt = con.createStatement();String sqlstr = "seleccionar * de datos";resultados = stmt.executeQuery(sqlstr);displayResult(resultados,out);stmt.close();con.close();}catch (Exception e){out.println("error: " + e.toString());} out.println("</BODY></HTML>");out.close();}
3. El método DisplayResult() muestra los resultados de la consulta:
public void displayResult(ResultSet results,PrintWriter out){StringBuffer buf = new StringBuffer();String temp;try{ResultSetMetaData rsmd = results.getMetaData();int numCols = rsmd.getColumnCount();int i, rowcount = 0;for (i=1; i <= numCols; i++){si (i > 1) buf.append(",");buf.append(rsmd.getColumnLabel(i));}buf.append(""); while (results.next() && rowcount < 100){for (i= 1; i <= numCols; i++){si (i > 1) buf.append(",");buf.append((results.getString(i)));}buf.append("<br>");rowcount++;}out.println("<br>");out .println(buf.toString());resultados.close();}catch (Excepción e){out.println("error: " + e.toString());retorno;}}
4. Debido a que el programa usa clases JDBC, clases de servlet y usa salida de consola, es necesario introducir los siguientes paquetes:
importar java.sql.*;importar java.io.*;importar javax.servlet.*;importar javax.servlet.http.*;
5. Compile Database.java, genere el archivo Database.class y coloque Database.class en el directorio de servlets del servidor WEB. En este ejemplo, se utiliza Java Web Server como servidor WEB. Configure el servidor WEB, agregue base de datos.clase y especifique el nombre como base de datos.
6. Escriba el archivo base de datos.html que llama al servlet. El código es el siguiente:
<html><head><title>Jsp usa Servlet para conectarse a la base de datos</title></head><body><center><form action="/servlet/database" método="get"><nombre de entrada ="acción " tipo="enviar" valor="Conectar a la base de datos"></form></center></body></html>