Borrar un Registro de la Base de Datos
Form_Borrar.jsp
Esta página lee el libro correspondiente al ID que ha recibido. Luego muestra los campos del libro en una tabla para que podamos asegurarnos de que se va a borrar el libro correcto. En la parte inferior de la página hay dos enlaces: uno para continuar con la solicitud de borrado del libro y otro para abortar la solicitud.
Propósito de la Página Form_Borrar.jsp
El propósito de esta página es producir una página web con una tabla que muestre el libro que se va a borrar. El usuario podría continuar el proceso de borrado seleccionado un enlace a la página Borrar.jsp o abortar el proceso seleccionando un enlace de vuelta a Index.jsp. La siguiente imagen muestra un ejemplo de la página Form_Borrar.jsp:
Aspecto de la Página Form_Borrar.jsp
Este código HTML crea el aspecto de la página con un enlace a Borrar.jsp etiquetado como "Borrar el Libro nnn" y un enlace a Index.jsp etiquetado como "Volver a la Página Inicial [el libro no se borrará]", en la parte inferior de la página:
<%@ page language="java" import="java.util.*, libreria.*" %>
<html>
<head>
<title>Librería -- Borrando el Libro <%= request.getParameter ("id") %></title>
</head>
<body bgcolor="#ffffee">
<h1><center>Librería -- Borrando el Libro <%= request.getParameter ("id") %></center></h1>
-- aquí va el código para recuperar los datos del libro a borrar --
<br>
<center>
<destacar><a href="Borrar.jsp?id=<%= libro.getId () %>">Borrar el libro
<%= request.getParameter ("id") %></a></destacar>
</center>
<%
}
else {
%>
<center>
<h2><font color="#cc0000">No se pudo encontrar el libro
<%= request.getParameter ("id") %></font></h2>
</center>
<%
}
%>
<hr>
<center>
<destacar><a href="Index.jsp">Volver a la Página Inicial
[el libro no se borrará]</a></destacar>
</center>
</body>
</html>
Cuando se pulsa sobre el enlace "Borrar el Libro nnn" se le pasa el parámetro id al página Borrar.jsp.
Recuperar los Datos del libro a Borrar
Este código Java recupera el ejemplar de libreria.LibrosBD almacenado en el atributo BaseDatos de la aplicación web por libreria.ContextListener:
LibrosBD librosBD = (LibrosBD) application.getAttribute ("BaseDatos");
Luego obtiene de la base de datos el libro cuyo id se ha pasado como parámetro a esta página desde Index.jsp:
Libro libro = (Libro) librosBD.getLibro (request.getParameter ("id"));
if (libro != null){
-- aquí va el código para mostrar la tabla --
}
else {
%>
<center>
<h2><font color="#cc0000">No se pudo encontrar el libro
<%= request.getParameter ("id") %></font></h2>
</center>
<%
}
Mostrar la Tabla
Este código HTML mezclado con código Java muestra la tabla; en la columna izquierda se muestran los nombres de los campos; la columna derecha contiene los datos del libro recuperados desde la base de datos:
<table align="center" cellpadding="2" cellspacing="2" border="1"
width="80%" bgcolor="#dddddd">
<tr>
<th>ISBN:</th>
<td><input name="isbn" type="text" value="<%= libro.getIsbn () %>"></td>
</tr>
<tr>
<th>Editorial:</th>
<td><input name="editorial" type="text" value="<%= libro.getEditorial() %>"></td>
</tr>
<tr>
<th>Autor:</th>
<td><input name="autor" type="text" value="<%= libro.getAutor () %>"></td>
</tr>
<tr>
<th>Categoría:</th>
<td><input name="categoria" type="text" value="<%= libro.getCategoria () %>"></td>
</tr>
<tr>
<th>Título:</th>
<td><input name="titulo" type="text" value="<%= libro.getTitulo () %>"></td>
</tr>
<tr>
<th>Ubicación:</th>
<td><input name="ubicacion" type="text" value="<%= libro.getUbicacion () %>"></td>
</tr>
</table>
Código Completo de la Página Form_Borrar.jsp
<%@ page language="java" import="java.util.*, libreria.*" %>
<html>
<head>
<title>Librería -- Borrando el Libro <%= request.getParameter ("id") %></title>
</head>
<body bgcolor="#ffffee">
<h1><center>Librería -- Borrando el Libro <%= request.getParameter ("id") %></center></h1>
<%
LibrosBD librosBD = (LibrosBD) application.getAttribute ("BaseDatos");
Libro libro = (Libro) librosBD.getLibro (request.getParameter ("id"));
if (libro != null){
%>
<table align="center" cellpadding="2" cellspacing="2" border="1"
width="80%" bgcolor="#dddddd">
<tr>
<th>ISBN:</th>
<td><input name="isbn" type="text" value="<%= libro.getIsbn () %>"></td>
</tr>
<tr>
<th>Editorial:</th>
<td><input name="editorial" type="text" value="<%= libro.getEditorial() %>"></td>
</tr>
<tr>
<th>Autor:</th>
<td><input name="autor" type="text" value="<%= libro.getAutor () %>"></td>
</tr>
<tr>
<th>Categoría:</th>
<td><input name="categoria" type="text" value="<%= libro.getCategoria () %>"></td>
</tr>
<tr>
<th>Título:</th>
<td><input name="titulo" type="text" value="<%= libro.getTitulo () %>"></td>
</tr>
<tr>
<th>Ubicación:</th>
<td><input name="ubicacion" type="text" value="<%= libro.getUbicacion () %>"></td>
</tr>
</table>
<br>
<center>
<destacar><a href="Borrar.jsp?id=<%= libro.getId () %>">Borrar el libro
<%= request.getParameter ("id") %></a></destacar>
</center>
<%
}
else {
%>
<center>
<h2><font color="#cc0000">No se pudo encontrar el libro
<%= request.getParameter ("id") %></font></h2>
</center>
<%
}
%>
<hr>
<center>
<destacar><a href="Index.jsp">Volver a la Página Inicial
[el libro no se borrará]</a></destacar>
</center>
</body>
</html>
Borrar.jsp
Esta página lee el libro cuyo id se le ha pasado. Luego muestra los datos del libro en una tabla, intenta borrar el libro de la base de datos, y muestra el éxito o el fracaso del intento.
Propósito de la Página Borrar.jsp
El propósito de esta página es producir una página web con una tabla que muestra el libro cuyo parámetro id se ha pasado a esta página desde Form_Borrar.jsp; realmente realiza la actualización en la base de datos; muestra si la base de datos se ha actualizado con éxito o no; y espera hasta que el usuario seleccione el enlace de vuelta a la página Index.jsp. En la siguiente figura puedes ver un ejemplo de la página Borrar.jsp:
Crear el Aspecto de la Página Borrar.jsp
Este código HTML genera el aspecto de la página con un enlace a Index.jsp en la parte inferior de la página:
<%@ page language="java" import="java.util.*, libreria.*" %>
<html>
<head>
<title>Librería -- Borrando un Libro</title>
</head>
<body bgcolor="#ffffee">
<h1><center>Librería -- Borrando el Libro <%= request.getParameter ("id") %></center></h1>
-- aquí se recuperan los datos del libro a borrar --
-- aquí se muestra la tabla de datos --
-- aquí va el código que actualiza la base de datos y se
muestra el éxito o el fracaso de la operación --
<hr>
<center>
<destacar><a href="Index.jsp">Volver a la Página Inicial</a></destacar>
</center>
</body>
</html>
Recuperar los Datos del libro a Borrar
Este código Java recupera el ejemplar de libreria.LibrosBD almacenado en el atributo BaseDatos de la aplicación web por libreria.ContextListener:
LibrosBD librosBD = (LibrosBD) application.getAttribute ("BaseDatos");
Luego obtiene de la base de datos el libro cuyo id se ha pasado como parámetro a esta página desde Form_Borrar.jsp:
Libro libro = (Libro) librosBD.getLibro (request.getParameter ("id"));
Mostar la Tabla
Este código HTML mezclado con código Java muestra la tabla; en la columna izquierda se muestran los nombres de los campos; la columna derecha contiene los datos del libro a borrar recuperados de la base de datos:
<table align="center" cellpadding="2" cellspacing="2" border="1"
width="80%" bgcolor="#dddddd">
<tr>
<th>ISBN:</th>
<td><%= libro.getIsbn() %></td>
</tr>
<tr>
<th>Editorial:</th>
<td><%= libro.getEditorial() %></td>
</tr>
<tr>
<th>Autor:</th>
<td><%= libro.getAutor() %></td>
</tr>
<tr>
<th>Categoría:</th>
<td><%= libro.getCategoria() %></td>
</tr>
<tr>
<th>Título:</th>
<td><%= libro.getTitulo() %></td>
</tr>
<tr>
<th>Ubicación:</th>
<td><%= libro.getUbicacion() %></td>
</tr>
</table>
Actualizar la Base de Datos y Mostrar el Éxito o el Fracaso
Este código Java mezclado con código HTML borra el libro cuyo parámetro id se le ha pasado como parámetro:
int rowsAffected = librosBD.borrarLibro (request.getParameter ("id"));
Si sólo se ve afectada una fila en la actualización de la base de datos se muestra en verde el mensaje "Se ha borrado el libro nnn"; si no es así, se muestra en rojo el mensaje "No se pudo borrar el libro nnn":
if (rowsAffected == 1) {
%>
<center>
<h2><font color="#00cc00">Se ha Borrado el Libro
<%= request.getParameter ("id") %></font></h2>
</center>
<%
}
else {
%>
<center>
<h2><font color="#cc0000">No se pudo borrar el libro
<%= request.getParameter ("id") %></font></h2>
</center>
<%
}
Código Completo de la Página Borrar.jsp
<%@ page language="java" import="java.util.*, libreria.*" %>
<html>
<head>
<title>Librería -- Borrando un Libro</title>
</head>
<body bgcolor="#ffffee">
<h1><center>Librería -- Borrando el Libro <%= request.getParameter ("id") %></center></h1>
<%
LibrosBD librosBD = (LibrosBD) application.getAttribute ("BaseDatos");
Libro libro = (Libro) librosBD.getLibro (request.getParameter ("id"));
if (libro != null){
%>
<table align="center" cellpadding="2" cellspacing="2" border="1"
width="80%" bgcolor="#dddddd">
<tr>
<th>ISBN:</th>
<td><%= libro.getIsbn() %></td>
</tr>
<tr>
<th>Editorial:</th>
<td><%= libro.getEditorial() %></td>
</tr>
<tr>
<th>Autor:</th>
<td><%= libro.getAutor() %></td>
</tr>
<tr>
<th>Categoría:</th>
<td><%= libro.getCategoria() %></td>
</tr>
<tr>
<th>Título:</th>
<td><%= libro.getTitulo() %></td>
</tr>
<tr>
<th>Ubicación:</th>
<td><%= libro.getUbicacion() %></td>
</tr>
</table>
<%
int rowsAffected = librosBD.borrarLibro (request.getParameter ("id"));
if (rowsAffected == 1) {
%>
<center>
<h2><font color="#00cc00">Se ha borrado el libro
<%= request.getParameter ("id") %></font></h2>
</center>
<%
}
else {
%>
<center>
<h2><font color="#cc0000">No se pudo borrar el libro
<%= request.getParameter ("id") %></font></h2>
</center>
<%
}
}
else {
%>
<center>
<h2><font color="#cc0000">No se encontró el libro
<%= request.getParameter ("id") %></font></h2>
</center>
<%
}
%>
<hr>
<center>
<destacar><a href="Index.jsp">Volver a la Página Inicial</a></destacar>
</center>
</body>
</html>