Escolar Documentos
Profissional Documentos
Cultura Documentos
Tarea / Desafo
Buscar productos de la Base de Datos
Mdulo 2
1
| Tarea N 2
Requerimientos
1. Crear un sistema que nos permita buscar productos por su nombre, debe retornar un
listado de productos que encuentre con ese nombre.
o
Crear un nuevo JSP resultado.jsp , que reciba cmo parmetro el nombre del
producto a buscar usando etiquetas jsp de JavaBeans <jsp:setProperty
property="nombre" name="producto" /> (seteamos el atributo nombre del
form a la clase Java Bean ProductoBean para la bsqueda). Lo anterior quiere
decir que el JSP interacta con el modelo (clase ProductoBean) para la
bsqueda del producto en la base de datos.
Ayuda Tarea: Para realizar la bsqueda en el modelo, clase ProductoDao, hay que crear un
nuevo mtodo que podramos llamar buscarPorNombre(String nombre) y recibe como
parmetro el nombre del producto a buscar, debe ejecutar una consulta SQL del tipo SELECT
* FROM productos WHERE nombre=? y debe retornar una lista de objetos Producto, si no se
encuentra debe retornar el listado vacio, sin elementos. Lo mismo en la clase beans.
2
| Tarea N 2
Etc
public List<Producto> findPorNombre(String nombre) {
List<Producto> listaProducto = new ArrayList<Producto>();
ResultSet result = null;
try {
String query = "SELECT * FROM productos WHERE nombre LIKE ?";
PreparedStatement stmt = getConnection().prepareStatement(query);
stmt.setString(1, "%" + nombre + "%");
result = stmt.executeQuery();
while (result.next()) {
Producto producto = new Producto();
producto.setId(result.getInt("id"));
producto.setNombre(result.getString("nombre"));
producto.setPrecio(result.getInt("precio"));
producto.setCantidad(result.getInt("cantidad"));
listaProducto.add(producto);
}
result.close();
stmt.close();
closeConnection();
} catch (SQLException se) {
System.out.println(se.toString());
System.err.println("Se ha producido un error de BD.");
System.err.println(se.getMessage());
}
return listaProducto;
}
Etc
Etc
public List<Producto> findPorNombre(){
return productoDao.findPorNombre(nombre);
}
Etc
AUTOR: Andrs Guzmn Fontecilla.
Email: andresguzf@gmail.com
WEB: http://www.bolsadeideas.com
LICENCIA: http://creativecommons.org/licenses/by-nc/4.0
3
| Tarea N 2
En el listado.jsp agregar el formulario, mismo de la tarea pasada pero cambiar el action a la jsp
resultado.jsp
Etc
<div style="margin:30px">
<form action="<%=request.getContextPath() %>/catalogo/resultado.jsp" method="post">
<input type="text" name="nombre" />
<input type="submit" name="enviar" value="Buscar" />
</form>
</div>
Etc
Finalmente, cmo ltima ayuda el resultado.jsp tendamos algo como esto:
Etc
<%@ page import="java.util.List,models.beans.*, models.entity.*"%>
<jsp:useBean id="producto" class="models.beans.ProductoBean" scope="request"></jsp:useBean>
<jsp:setProperty property="nombre" name="producto" />
<% List<Producto> listadoProductos = producto.findPorNombre();%>
Etc
4
| Tarea N 2
Clase ProductoDAO
Clase ProductoBean
Fecha y hora tope: este lunes a las 23:55, subiendo los datos a travs del
formulario en el sistema de formacin y es importante cumplir con la fecha de
entrega en el da y hora establecida, de lo contrario se perdern puntos por el
atraso.
Se recomienda que revisen la tarea antes de subirla (no se apuren), y en
caso de no llegar, tienen un plazo mximo de 24 horas de atraso.
Esperamos tus dudas en los foros!
Saludos!
5
| Tarea N 2