Anda di halaman 1dari 5

Curso: "Java EE7 y Frameworks" 2016

Tarea / Desafo
Buscar productos de la Base de Datos

Mdulo 2

Todos los logos y marcas utilizados en este


documento, estn registrados y pertenecen a
sus respectivos dueos.

AUTOR: Andrs Guzmn Fontecilla.


Email: andresguzf@gmail.com
WEB: http://www.bolsadeideas.com
LICENCIA: http://creativecommons.org/licenses/by-nc/4.0

1
| Tarea N 2

Curso: "Java EE7 y Frameworks" 2016


Objetivos
Implementar la bsqueda de productos por nombre en la base de datos y retornar un listado
de los productos encontrados.
Los cambios se deben hacer en el proyecto visto en el ltimo workshop catalogo-jsp.
Debern resolver el siguiente desafo.

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 formulario HTML sobre el listado de productos (en el listado.jsp)

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.

La vista resultado.jsp debe mostrar el listado de los objetos encontrados

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.

AUTOR: Andrs Guzmn Fontecilla.


Email: andresguzf@gmail.com
WEB: http://www.bolsadeideas.com
LICENCIA: http://creativecommons.org/licenses/by-nc/4.0

2
| Tarea N 2

Curso: "Java EE7 y Frameworks" 2016


Como regalo entregar el cdigo exacto del mtodo que debern agregar/implementar en la
clase DAO ProductoDao para realizar la bsqueda:

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

Entonces nuestra clase JavaBeans ProductoBean, tambin a modo de ayuda deberamos


agregar el siguiente mtodo para realizar la bsqueda en el DAO:

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

Curso: "Java EE7 y Frameworks" 2016

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

AUTOR: Andrs Guzmn Fontecilla.


Email: andresguzf@gmail.com
WEB: http://www.bolsadeideas.com
LICENCIA: http://creativecommons.org/licenses/by-nc/4.0

4
| Tarea N 2

Curso: "Java EE7 y Frameworks" 2016


Entrega de la tarea
Una vez terminada y probada la tarea debern subir un archivo comprimido
(gz, zip o rar) con todos los archivos involucrados, deben nombrar el archivo
con el nombre punto y 1 apellido guion el modulo, ejemplo:
andres.guzman-modulo2. Adems incluir las imgenes screenshot (imprimir
pantalla).
Los archivos involucrados son:

Vista listado.jsp con el formulario buscar

Vista resultado.jsp con el listado (usar jsp:useBean y jsp:setProperty)

Clase ProductoDAO

Clase ProductoBean

Imgenes screenshot del programa funcionando.

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!

Enva tus consultas a los foros!


Aqu es cuando debes sacarte todas las dudas
haciendo consultas en los foros correspondientes
Nunca subestimes los ejercicios y toma un tiempo
prudencial para empezar a trabajar (no dejes nada
para ltimo momento).

AUTOR: Andrs Guzmn Fontecilla.


Email: andresguzf@gmail.com
WEB: http://www.bolsadeideas.com
LICENCIA: http://creativecommons.org/licenses/by-nc/4.0

5
| Tarea N 2