Programación con JDBC (Java
DataBase Connectivity ), Servlets
y JSP (Java Server Pages)
Autor: José Vicente Núñez Zuleta
(
[email protected],
[email protected])
Puntos a tratar
!¿Qué es JDBC?
!Arquitectura de un programa JDBC.
!SQL y el modelo relacional (Repaso).
!Ejemplo de aplicación.
!¿Qué son Servlets?
!Arquitectura de un Servlet.
!Métodos de un Servlet.
Puntos a tratar
!Hola mundo, versión Servlet.
!¿Qué es JSP?
!Servlets, JSP y JDBC.
!Ejemplo de aplicación.
¿Qué es JDBC?
!JDBC es el API de JAVA para conectarse a base
de datos.
!Está basada en ODBC, que a su vez se basa en
X/Open CLI.
!Existen múltiples puentes JDBC para cada
manejador de base de datos conocido, al igual que
puentes JDBC-ODBC.
!JDBC utiliza SQL (Structured Query Languaje)
para comunicarse con la base de datos.
Arquitectura de JDBC
Aplicación JAVA
Manejador JDBC
Comando
SQL
Two tier
arquitecture
Manejador 100%
JAVA
Cojunto de resultados
Base de Datos
SQL y el modelo relacional
!El proceso de diseñar una base de datos implica
identificar a los objetos (entidades) a ser modeladas.
!Las entidades no están aisladas tienen relaciones.
!Las relaciones tienen diferentes grados de cardinalidad
(uno a uno, uno a muchos, muchos a muchos).
!Normalización implica eliminar redundancia del proceso
de almacenamiento de la base de datos.
SQL y el modelo relacional
!Existen varias formas de normalización, la más común es
la tercera forma normal.
!Al final de este proceso las entidades se convierten en
tablas, los atributos en clases y los objetos utilizan un
OID (Object ID) para identificarse de manera única en la
base de datos.
!Las relaciones de herencia y de agregación se modelan
por claves foráneas.
SQL y el modelo relacional
!SQL (Structured Query Languaje) es un lenguaje que
provee acceso a las bases de datos basadas en el modelo
relacional usando un lenguaje uniforme.
!SQL cuenta con dos tipos de instrucciones: DDL (Data
Definition Languaje) y DML (Data Manipulation
Languaje).
!Las DDL permiten crear tablas, vistas (create table, create
view, drop table, drop view)..
!Las DML permite seleccionar, actualizar o eliminar datos
de las tablas en la base de datos (select, update y delete
respectivamente).
SQL y el modelo relacional
!Sentencia SELECT
select <lista de columnas>
from <lista de tablas>
where <criterio de filtrado>
!Sentencia UPDATE
update <nombre de la tabla>
set <lista de columnas y valores>
where <criterio de filtrado>
!Sentencia DELETE
delete
from <lista de tablas>
where <criterio de filtrado>
SQL y el modelo relacional
Tablas, atributos, relaciones, claves (externas y de
tabla)
Normalización (reducir redundancia)
PruebaEnLinea
nId LONG
sTitulo TEXT(50)
sDescripcion TEXT(2000)
dFechaINicio DATE
dFechaFinal DATE
Pertenece
Categoria
nId LONG
sTitulo TEXT(50)
sDescripción TEXT(50)
nPuntuación INT
nPuntuaciónAcumulada LONG
nId/1 LONG (FK) (IE)
Pregunta
nId LONG
sTitulo TEXT(50)
nId/1 LONG (FK) (IE)
Respuesta
nId LONG
sTitulo TEXT(50)
nPuntuación INT
nId/1 LONG (FK) (IE)
SQL y el modelo relacional
!Ejemplos de programa con JDBC.
!Haga un programa que use la orden delete.
¿Qué son Servlets?
!Son un reemplazo seguro y portable a CGI.
!Es un modulo dinámico que sirve a peticiones en
un servidor Web.
!Corre por completo en la máquina virtual de
JAVA y corre del lado del servidor.
!No tiene problemas de compatibilidad ya que
corre del lado del servidor.
!Tiene como competidores a CGI, Server Side
Javascript, PHP3, Cold Fusion o ASP.
¿Qué son Servlets?
!Razones para usar servlets:
!Eficiencia: se puede usar código que sólo es ejecutado la primera vez que se
corre el Servlet.
!Persistente: a diferencia de CGI, puede mantener estados entre peticiones; El
manejo de sesiones implica el almacen de objetos complejos en memoria.
!Portable: por estar hechos en JAVA
!Robusto: por estar hechos en JAVA tienen acceso a todo el JDK.
!Extensible: por medio de los mecanismos de extensibilidad de orientación a
objetos.
!Seguro: por correr del lado del servidor hereda el modelo de seguridad
provisto por el servidor Web. Esto sin contar las extensiones de seguridad del
lenguaje como el JCE.
Arquitectura de un Servlet
<<Interface>>
javax.servlet.Servlet
init()
getServletConfig()
service()
getServletInfo()
destroy()
javax.servlet.ServletConfig
getInitParameter()
getServletContext()
getInitParameterNames()
java.io.Serializable
javax.Servlet.GenericServlet
getServletContext()
getInitParameter()
getInitParameterNames()
log()
getServletInfo()
init()
getServletConfig()
service()
destroy()
javax.servlet.http.HttpServlet
doDelete()
doGet()
doOptions()
doPost()
doPut()
doTrace()
getLastModified()
service()
Arquitectura de un Servlet
Cliente
Servidor Web
HttpServlet
doDelete()
doGet()
doOptions()
doPost()
doPut()
doTrace()
Métodos básicos de un Servlet
!Init(): es donde comienza el servlet. Aquí se colocá código que se
desea sea ejecutado sólo cuando carga el servlet.
!Service(): maneja las peticiones del cliente.
!Destroy(): cuando el servlet es desmontado se invoca este metodo.
Es usado para hacer limpieza.
!DoGet() y doPost(): son identicos excepto que uno atiende las
peticiones GET y el otro las POST. Ambos métodos reciben
objetos del tipo HttpServletResponse y HttpServletRequest.
!getServletInfo(): retorna información del servlet, como autor,
copyrigth, etc.
Hola mundo, versión servlet
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class HolaMundo extends HttpServlet {
// Lo que llega al metodo GET lo enviamos al POST
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
// Procesamos los parametros
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException , IOException {
// Obtenemos los parametros que vienen de la forma
String mensaje = request.getParameter("mensaje");
// Preparamos un PrintWriter para devolver una salida
response.setContentType("text/html");
PrintWriter salida = response.getWriter();
salida.println("<html>");
salida.println("<head><title>Hola mundo</title></head>");
salida.println("<head><title>Hola mundo</title></head><body>");
if (mensaje != null) {
salida.println("<p>Hola " + mensaje);
} else {
salida.println("<p>Hola extraño");
}
salida.println("</body></html>");
}
}
¿Qué es JSP?
!Es una tecnología simple pero útil usada para generar
HTML dinámico.
!Provee una manera de separar la presentación del
contenido.
!El motor de JSP es sólo otro Servlet cuya extensión tiene
correspondencia al tipo *.jsp
!Tiene definidas de manera implícita las siguientes
variables: request, response, in y out (De los tipos
HttpServletRequest, HttpServletResponse,
BufferedReader, y PrintWriter respectivamente).
¿Qué es JSP?
<html>
<head><title>Hola mundo</title></head>
<body>
<%
String mensaje = request.getParameter(“mensaje”);
if (mensaje != null) {
salida.println("<p>Hola " + mensaje);
} else {
salida.println("<p>Hola extraño");
}
%>
</body>
</html>
Servlets, JSP y JDBC
Ejemplo de aplicación
!Se desea una aplicación para guardar la tarjeta de
presentación de un grupo de clientes en una base
de datos.
Bibliografía
!Taylor Art. JDBC Developers Resource.. Informix Press.
1997.
!McCarty, Darian Cassady Luke. Java Distributed
Objects. SAMS. 1999.
!Goodwill James. Developing Java Servlets. SAMS. 1999.
!Muller. J Robert. Database Design for Smarties, Using
UML for Data Modeling. Morgan Kaufman. 1999.
!Godwill James. Developing Java Servlets. SAMS.
1999.
Comentarios de: Programación con JDBC (Java DataBase Connectivity), Servlets y JSP (Java Server Pages) (0)
No hay comentarios