Servlets con  acceso a  Bases de Datos   Manuel Williams Alcedo
Índice <ul><li>Repaso de JDBC </li></ul><ul><li>Repaso de Servlets </li></ul><ul><ul><li>¿Qué es un Servlet? </li></ul></u...
JDBC <ul><li>API de Java para ejecutar sentencias SQL </li></ul><ul><li>JDBC posibilita básicamente tres cosas: </li></ul>...
JDBC de forma esquemática ResultSet Statement Connection DriverManager JDBC-ODBC Bridge ODBC Driver ODBC Database Aplicaci...
Utilización de JDBC 3.0 API Class.forName(&quot;sun.jdbc.odbc.JdbcOdbcDriver&quot;); String url = ″jdbc:odbc:wombat″; Conn...
Servlets <ul><li>Programas en Java que se ejecutan en un servidor HTTP (servidor Web) </li></ul><ul><li>Actúan como capa i...
Cuándo y por qué usar Servlets <ul><li>Muchas peticiones desde navegador se satisfacen retornando  documentos HTML estátic...
Estructura de un HttpServlet HttpServlet <ul><li>Método  init() </li></ul><ul><li>Se ejecuta una sola vez al inicializar e...
Servlets con acceso a Base de Datos <ul><li>Conexión a Bases de Datos </li></ul><ul><ul><li>Tarea importante y frecuente d...
Estructura de un Servlet con acceso a DB HttpServlet <ul><li>Método  init() </li></ul><ul><li>Establecer conexión con la B...
Ejemplo 1: Escribir en una Base de Datos <ul><li>Base de Datos Access </li></ul><ul><ul><li>ServletOpinion2.mdb </li></ul>...
Ejemplo 2: Consultar una Base de Datos <ul><li>Base de Datos Access </li></ul><ul><ul><li>Alumnos.mdb </li></ul></ul><ul><...
para insertar los datos en una tabla de una base de datos: <ul><li>Insertar el import de sql: </li></ul><ul><li>import jav...
Insertar en la función doPost el código que ejecuta el Insert: <ul><li>String sql = &quot;INSERT INTO DatosWeb &quot;; </l...
Próxima SlideShare
Cargando en…5
×

Servletacceso bd

1.050 visualizaciones

Publicado el

Servlet acceso a base de datos

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
1.050
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
53
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Servletacceso bd

  1. 1. Servlets con acceso a Bases de Datos Manuel Williams Alcedo
  2. 2. Índice <ul><li>Repaso de JDBC </li></ul><ul><li>Repaso de Servlets </li></ul><ul><ul><li>¿Qué es un Servlet? </li></ul></ul><ul><ul><li>Estructura de un Servlet – Ciclo de vida </li></ul></ul><ul><li>Servlets con acceso a Bases de Datos </li></ul><ul><li>Ejemplo 1: Escribir en una Base de Datos </li></ul><ul><li>Ejemplo 2: Consultar una Base de Datos </li></ul>
  3. 3. JDBC <ul><li>API de Java para ejecutar sentencias SQL </li></ul><ul><li>JDBC posibilita básicamente tres cosas: </li></ul><ul><ul><li>Establecer una conexión con una base de datos desde Java </li></ul></ul><ul><ul><li>Enviar sentencias SQL a través de dicha conexión </li></ul></ul><ul><ul><li>Procesar los resultados </li></ul></ul><ul><li>La JDBC 3.0 API comprende 2 paquetes: </li></ul><ul><ul><li>java.sql </li></ul></ul><ul><ul><li>javax.sql </li></ul></ul>
  4. 4. JDBC de forma esquemática ResultSet Statement Connection DriverManager JDBC-ODBC Bridge ODBC Driver ODBC Database Aplicación Cliente
  5. 5. Utilización de JDBC 3.0 API Class.forName(&quot;sun.jdbc.odbc.JdbcOdbcDriver&quot;); String url = ″jdbc:odbc:wombat″; Connection con = DriverManager.getConnection(url); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(″SELECT a, b, c FROM Table2″); While(rs.next()){ int i = rs.getInt(  a  ); String s = rs.getString(  b  ); Float f = rs.getFloat(  c  ) ; System.out.println(  ROW=  + i +   + s +   + f); }
  6. 6. Servlets <ul><li>Programas en Java que se ejecutan en un servidor HTTP (servidor Web) </li></ul><ul><li>Actúan como capa intermedia entre: </li></ul><ul><ul><li>Petición proviniente de un Navegador Web u otro cliente HTTP </li></ul></ul><ul><ul><li>Bases de Datos o Aplicaciones en el servidor HTTP </li></ul></ul>Servidor Web Servlet BD externa BD Aplicación
  7. 7. Cuándo y por qué usar Servlets <ul><li>Muchas peticiones desde navegador se satisfacen retornando documentos HTML estáticos , es decir, que están en ficheros </li></ul><ul><li>En ciertos casos, es necesario generar las páginas HTML para cada petición: </li></ul><ul><ul><li>Página Web basada en datos enviados por el cliente </li></ul></ul><ul><ul><ul><li>Motores de búsqueda, confirmación de pedidos </li></ul></ul></ul><ul><ul><li>Página Web derivada de datos que cambian con frecuencia </li></ul></ul><ul><ul><ul><li>Informe del tiempo o noticias de última hora </li></ul></ul></ul><ul><ul><li>Página Web que usa información de bases de datos corporativas u otras fuentes del la parte del servidor </li></ul></ul><ul><ul><ul><li>Comercio electrónico: precios y disponibilidades </li></ul></ul></ul>
  8. 8. Estructura de un HttpServlet HttpServlet <ul><li>Método init() </li></ul><ul><li>Se ejecuta una sola vez al inicializar el Servlet </li></ul><ul><li>Inicializar variables y operaciones costosas en tiempo de ejecución </li></ul><ul><li>Método destroy() </li></ul><ul><li>Lo llama el servidor al “apagarse” </li></ul><ul><li>Cerrar procesos en curso, liberar memoria, cerrar ficheros </li></ul><ul><li>Métodos doGet() o doPost() </li></ul><ul><li>Recoger peticiones del usuario y ejecutar operaciones </li></ul><ul><li>Mandar respuesta al usuario (en forma de HTML) </li></ul>Otros métodos de usuario Objeto HttpServletRequest Objeto HttpServletResponse
  9. 9. Servlets con acceso a Base de Datos <ul><li>Conexión a Bases de Datos </li></ul><ul><ul><li>Tarea importante y frecuente de los Servlets </li></ul></ul><ul><li>Servlets </li></ul><ul><ul><li>Funciones de capa intermedia en sistemas con arquitectura de tres capas </li></ul></ul><ul><li>Ventajas: </li></ul><ul><ul><li>Nivel intermedio: control de operaciones contra la Base de Datos </li></ul></ul><ul><ul><li>Drivers JDBC no tienen que estar en el cliente </li></ul></ul><ul><ul><li>Se puede tener constancia de lo que ha hecho el usuario en peticiones anteriores </li></ul></ul><ul><ul><li>Sincronización de peticiones </li></ul></ul>
  10. 10. Estructura de un Servlet con acceso a DB HttpServlet <ul><li>Método init() </li></ul><ul><li>Establecer conexión con la Base de Datos </li></ul><ul><li>Método destroy() </li></ul><ul><li>Cerrar la conexión con la Base de Datos </li></ul><ul><li>Métodos doGet() o doPost() </li></ul><ul><li>Interacción con la Base de Datos </li></ul><ul><ul><li>Bien en el propio cuerpo de estos métodos </li></ul></ul><ul><ul><li>Bien mediante llamadas a otros métodos de usuario </li></ul></ul>Otros métodos de usuario: actualizarBaseDeDatos() ... Objeto Connection
  11. 11. Ejemplo 1: Escribir en una Base de Datos <ul><li>Base de Datos Access </li></ul><ul><ul><li>ServletOpinion2.mdb </li></ul></ul><ul><li>Data Source Name (DSN) </li></ul><ul><ul><li>opinion </li></ul></ul><ul><li>Página HTML: </li></ul><ul><ul><li>MiServlet2.html </li></ul></ul><ul><li>Servlet </li></ul><ul><ul><li>ServletOpinion2.java -> ServletOpinion2.class </li></ul></ul><ul><li>Arrancar Tomcat 5.5 </li></ul>
  12. 12. Ejemplo 2: Consultar una Base de Datos <ul><li>Base de Datos Access </li></ul><ul><ul><li>Alumnos.mdb </li></ul></ul><ul><li>Data Source Name (DSN) </li></ul><ul><ul><li>alumnos </li></ul></ul><ul><li>Página HTML: </li></ul><ul><ul><li>Formulario2.html </li></ul></ul><ul><li>Servlet </li></ul><ul><ul><li>ListaAlumnos.java -> ListaAlumnos.class </li></ul></ul><ul><li>Arrancar Tomcat 5.5 </li></ul>
  13. 13. para insertar los datos en una tabla de una base de datos: <ul><li>Insertar el import de sql: </li></ul><ul><li>import java.sql.*; </li></ul><ul><li>Insertar un objeto Connection como miembro de la clase SurveyServlet: </li></ul><ul><li>Connection connection; </li></ul><ul><li>Insertar en la función init la conexión con el ODBC </li></ul><ul><li>try { </li></ul><ul><li>Class.forName(&quot;sun.jdbc.odbc.JdbcOdbcDriver&quot;); </li></ul><ul><li>String url=&quot;jdbc:odbc:pruebaODBC&quot;; </li></ul><ul><li>connection=DriverManager.getConnection(url); </li></ul><ul><li>} catch(Exception e) { </li></ul><ul><li>System.out.println(&quot;Error al crear la conexión&quot;); </li></ul><ul><li>e.printStackTrace(); </li></ul><ul><li>} </li></ul>
  14. 14. Insertar en la función doPost el código que ejecuta el Insert: <ul><li>String sql = &quot;INSERT INTO DatosWeb &quot;; </li></ul><ul><li>sql += &quot;(Tamano,Comentarios) &quot;; </li></ul><ul><li>sql += &quot;VALUES ('&quot; + req.getParameter(&quot;employee&quot;) + &quot;', '&quot;; </li></ul><ul><li>sql += req.getParameter(&quot;comment&quot;) + &quot;')&quot;; </li></ul><ul><li>System.out.println(sql); </li></ul><ul><li>try { </li></ul><ul><li>Statement statement=connection.createStatement(); </li></ul><ul><li>statement.execute(sql); </li></ul><ul><li>} catch(SQLException e) { </li></ul><ul><li>e.printStackTrace(); </li></ul><ul><li>} </li></ul>

×