Title: ServletsJDBC
1Servlets con acceso a Bases de Datos 21 de
Marzo de 2007
2Índice
- Repaso de JDBC
- Repaso de Servlets
- Qué es un Servlet?
- Estructura de un Servlet Ciclo de vida
- Servlets con acceso a Bases de Datos
- Ejemplo 1 Escribir en una Base de Datos
- Ejemplo 2 Consultar una Base de Datos
3JDBC
- API de Java para ejecutar sentencias SQL
- JDBC posibilita básicamente tres cosas
- Establecer una conexión con una base de datos
desde Java - Enviar sentencias SQL a través de dicha conexión
- Procesar los resultados
- La JDBC 3.0 API comprende 2 paquetes
- java.sql
- javax.sql
4JDBC de forma esquemática
ResultSet
Statement
Aplicación Cliente
Connection
DriverManager
JDBC-ODBC Bridge
ODBC Driver
ODBC Database
5Utilización de JDBC 3.0 API
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") St
ring url ?jdbcodbcwombat? 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)
6Servlets
- Programas en Java que se ejecutan en un servidor
HTTP (servidor Web) - Actúan como capa intermedia entre
- Petición proveniente de un Navegador Web u otro
cliente HTTP - Bases de Datos o Aplicaciones en el servidor HTTP
Servidor Web
BD
BD externa
Servlet
Aplicación
7Cuándo y por qué usar Servlets
- Muchas peticiones desde navegador se satisfacen
retornando documentos HTML estáticos, es decir,
que están en ficheros - En ciertos casos, es necesario generar las
páginas HTML para cada petición - Página Web basada en datos enviados por el
cliente - Motores de búsqueda, confirmación de pedidos
- Página Web derivada de datos que cambian con
frecuencia - Informe del tiempo o noticias de última hora
- Página Web que usa información de bases de datos
corporativas u otras fuentes del la parte del
servidor - Comercio electrónico precios y disponibilidades
8Estructura de un HttpServlet
HttpServlet
- Método init()
- Se ejecuta una sola vez al inicializar el Servlet
- Inicializar variables y operaciones costosas en
tiempo de ejecución
- Métodos doGet() o doPost()
- Recoger peticiones del usuario y ejecutar
operaciones - Mandar respuesta al usuario (en forma de HTML)
Otros métodos de usuario
- Método destroy()
- Lo llama el servidor al apagarse
- Cerrar procesos en curso, liberar memoria, cerrar
ficheros
9Servlets con acceso a Base de Datos
- Conexión a Bases de Datos
- Tarea importante y frecuente de los Servlets
- Servlets
- Funciones de capa intermedia en sistemas con
arquitectura de tres capas
- Ventajas
- Nivel intermedio control de operaciones contra
la Base de Datos - Drivers JDBC no tienen que estar en el cliente
- Se puede tener constancia de lo que ha hecho el
usuario en peticiones anteriores - Sincronización de peticiones
10Estructura de un Servlet con acceso a DB
HttpServlet
Objeto Connection
- Método init()
- Establecer conexión con la Base de Datos
- Métodos doGet() o doPost()
- Interacción con la Base de Datos
- Bien en el propio cuerpo de estos métodos
- Bien mediante llamadas a otros métodos de usuario
Otros métodos de usuario actualizarBaseDeDatos().
..
- Método destroy()
- Cerrar la conexión con la Base de Datos
11Ejemplo 1 Escribir en una Base de Datos
- Base de Datos Access
- ServletOpinion2.mdb
- Data Source Name (DSN)
- opinion
- Página HTML
- MiServlet.html
- Servlet
- ServletOpinion2.java -gt ServletOpinion2.class
- Arrancar Tomcat 5.5
12Ejemplo 2 Consultar una Base de Datos
- Base de Datos Access
- Alumnos.mdb
- Data Source Name (DSN)
- alumnos
- Página HTML
- Formulario2.html
- Servlet
- ListaAlumnos.java -gt ListaAlumnos.class
- Alumno.java -gt Alumno.class
- Arrancar Tomcat 5.5