Error patron DAO en servlet
Publicado por Rosa (8 intervenciones) el 13/02/2020 15:47:36
Buenas! Tengo el siguiente ejercicio:
Mostrar el listado de almacenes que tienen productos en peligro de rotura de stock (menos de 5 unidades), indicando cuántos de estos productos están en peligro (ejemplo: ALMACEN_8: 5 PRODUCTOS).
Para este ejercicio uso dos tablas de mi base de datos que son:
-Almacenes: *ID
*Nombre
*Ubicacion
-Productos-Almacenes: ID_almacen
ID_Almacen1
ID_Almacen2
Stock
El constructor que voy a utilizar es el siguiente:
Creo el patron DAO de la siguiente manera:
Y posteriormente el servlet
Creo el JSP
Y al ejecutarlo el servlet, me redirecciona al error.jsp del catch. Alguien podria decirme que tengo mal? gracias mil
Mostrar el listado de almacenes que tienen productos en peligro de rotura de stock (menos de 5 unidades), indicando cuántos de estos productos están en peligro (ejemplo: ALMACEN_8: 5 PRODUCTOS).
Para este ejercicio uso dos tablas de mi base de datos que son:
-Almacenes: *ID
*Nombre
*Ubicacion
-Productos-Almacenes: ID_almacen
ID_Almacen1
ID_Almacen2
Stock
El constructor que voy a utilizar es el siguiente:
1
2
3
4
5
6
public Productos_almacenes(int ID_producto, int ID_almacen1, int Stock, String Nombre) {
this.ID_producto = ID_producto;
this.ID_almacen1 = ID_almacen1;
this.Stock = Stock;
this.Nombre = Nombre;
}
Creo el patron DAO de la siguiente manera:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@Override
public List<Productos_almacenes> getAllAlmacenes1BajoStock() throws Exception {
List<Productos_almacenes>productos_almacenes= new ArrayList();
Productos_almacenes producto_almacen= null;
try{
this.openConnection();
String sql = "select cons.*, Alm.Nombre as NomAlmacen FROM (select ID_almacen1,count(ID_producto) as Cantidad from `Productos-Almacenes` where Stock < 5 group by ID_almacen1) cons inner join Almacenes Alm on cons.ID_almacen1 = Alm.ID";
Statement stm = con.createStatement();
ResultSet rs= stm.executeQuery(sql);
while(rs.next()){
producto_almacen= new Productos_almacenes(
rs.getInt("ID_producto"),
rs.getInt("ID_almacen1"),
rs.getInt("Stock"),
rs.getString("Nombre")
);
productos_almacenes.add(producto_almacen);
}
this.closeConnection();
} catch (Exception e) {
e.printStackTrace();
throw new Exception ("Error al recuperar la lista de almacenes, llame al CPD");
}
return productos_almacenes;
}
Y posteriormente el servlet
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try{
Productos_almacenesManager pam= new Productos_almacenesManager();
List<Productos_almacenes>productos_almacenes=pam.getAllAlmacenes1BajoStock();
request.setAttribute("productos_almacenes", productos_almacenes);
hacerForward("/listadoStock.jsp", request, response);
}catch(Exception e){
hacerForward("/error.jsp", request, response);
}
}
private void hacerForward(String target, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(target);
dispatcher.forward(request, response);
}
Creo el JSP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<%@page import="java.util.ArrayList"%>
<%@page import="tk.juanzorba.gestion.model.Productos_almacenes"%>
<%@page import="java.util.List"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%
List<Productos_almacenes> productos_almacenes = (ArrayList<Productos_almacenes>) request.getAttribute("productos_almacenes");
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Gestión almacenes</title>
</head>
<body>
<h1>Productos en almacen</h1>
<table border="2">
<thread>
<tr>
<th>ID_producto</th>
<th>ID_almacen1</th>
<th>Nombre</th>
</tr>
</thread>
<body>
<% for (Productos_almacenes pam : productos_almacenes) {%>
<tr>
<td><%=pam.getID_producto() %></td>
<td><%=pam.getID_almacen1() %></td>
<td><%=pam.getNombre()%></td>
</tr>
<% }%>
</body>
</table>
<p><button><a href="index.html"</a>Volver al index</button></p>
</body>
</html>
Y al ejecutarlo el servlet, me redirecciona al error.jsp del catch. Alguien podria decirme que tengo mal? gracias mil
Valora esta pregunta


0