Ir al contenido principal

Ejemplo MVC - DAO - JPA

ControladorProducto


if(opcion.equals("delete")) {              
                int codigo = Integer.parseInt(request.getParameter("codigo"));
             
                ProductoDAO pDao = new ProductoDAO();              
             
                if (pDao.eliminarProducto(codigo)) {
                    request.setAttribute("RPTA", "Se elimini exitosamente");
                    RequestDispatcher dispatcher = request.getRequestDispatcher("listarProducto.jsp");
                    dispatcher.forward(request, response);
                } else {
                    request.setAttribute("RPTA", "No se pudo eliminar el producto, intente otra vez");
                    RequestDispatcher dispatcher = request.getRequestDispatcher("listarProducto.jsp");
                    dispatcher.forward(request, response);  
                }

////////////////////////////////////
ProductoDAO

 public boolean eliminarProducto(int codigo) {
        try {
            control.eliminarProducto(Integer.valueOf(codigo));
        } catch (Exception ex) {
            return false;
        }
        return true;
    }

//////////////////////////////////
ControladorUsuarioJPA

 public void eliminarProducto(Integer id) throws Exception {
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            Producto tusuario;
            try {
                tusuario = em.getReference(Producto.class, id);
                tusuario.getCodigo();
            } catch (Exception e) {
                throw new Exception(e.getMessage());
            }
            em.remove(tusuario);
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }

////////////////////////////////////
menuCabecera.jsp

<%@page import="edu.sise.modelo.Usuario"%>
<%@page language="java" session="true" %>
<br>
<div align="right"><h1>Bienvenido <%= ((Usuario)session.getAttribute("USR")).getNombres() %> </h1></div>
<br>
<div align="center">
    <table border="1">      
        <tbody>
            <tr>
                <td><a href="listarProducto.jsp">Listar Productos</a></td>
                <td><a href="registrarProducto.jsp">Registrar Producto</a></td>
                <td><a href="">Mi Perfil</a></td>
                <td><a href="ControladorUsuario?opc=logout">Cerrar Sesion</a></td>
            </tr>
        </tbody>
    </table>
</div>
<br>


/////////////////////////////////
public class UsuarioDAO {
 
    public Usuario validarUsuario(int codigo, String clave){
        Usuario usuario = null;
        if (codigo == 100 && clave.equals("1234")) {
            usuario = new Usuario();
        }  
        return usuario;
    }
}
/////////////////////////////////
ControladorUsuario (dentro del try)

String opcion = request.getParameter("opc");
            if (opcion.equals("login")) {
                String codigo = request.getParameter("txtCodigo");
                String clave = request.getParameter("txtClave");
             
                UsuarioDAO uDao = new UsuarioDAO();
                Usuario usuario = uDao.validarUsuario(Integer.parseInt(codigo), clave);
                                             
                if (usuario != null) {
                    HttpSession session = request.getSession(true);
                    session.setAttribute("USUARIO", usuario);
                 
                    response.sendRedirect("listarProducto.jsp");                  
                         
                } else {                  
                    request.setAttribute("MSG", "Usuario y/o Password incorrectos por favor corregir !!");
                    RequestDispatcher dispatcher = request.getRequestDispatcher("mensaje.jsp");
                    dispatcher.forward(request, response);                          
                }
             
            }        

////////////////////////////////
mensaje.jsp


<jsp:scriptlet>
    String mensaje = (String)request.getAttribute("MSG");
</jsp:scriptlet>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta http-equiv="refresh" content="5; URL=index.jsp" />
        <title>SISE - Ejemplo MVC - DAO - JPA</title>
    </head>
    <body>
        <br>
        <br>
        <h2>Mensaje: <%=mensaje %>  </h2>
        <br>
        <a href="index.jsp">Volver al Login</a>
     
    </body>
</html>


////////////////////////////////////////////
listarProductos.jsp


<%@page import="edu.sise.modelo.Usuario"%>
<%@page import="edu.sise.modelo.Producto"%>
<%@page import="java.util.List"%>
<%@page import="edu.sise.dao.ProductoDAO"%>
<%

    Usuario usuarioLogin = (Usuario) request.getSession().getAttribute("USUARIO");
    String rptaTransaccion = "";

    if (usuarioLogin == null) {
        request.setAttribute("MSG", "Acceso denegado a esta pagina primero tiene que Iniciar Sesion !!");
        RequestDispatcher dispatcher = request.getRequestDispatcher("mensaje.jsp");
        dispatcher.forward(request, response);
        return;
    } else {
        rptaTransaccion = (String) request.getAttribute("RPTA");
        rptaTransaccion = rptaTransaccion!=null?rptaTransaccion:"";
    }

    ProductoDAO productoDAO = new ProductoDAO();

%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>SISE - Ejemplo MVC - DAO - JPA</title>
    </head>
    <body>
        <jsp:include page="menuCabecera.jsp" flush="true" />
        <div align="center">
            <table border="1">
                <thead>
                    <tr>
                        <th>Codigo</th>
                        <th>Descripcion</th>
                        <th>Precio</th>
                        <th>Stock</th>
                        <th>Estado</th>
                        <th>Editar</th>
                        <th>Eliminar</th>
                    </tr>
                </thead>          
                <tbody>
                    <%
                        List<Producto> listaProductos = productoDAO.listarProductosAll();

                        for (int i = 0; i < listaProductos.size(); i++) {
                            Producto producto = listaProductos.get(i);
                    %>
                    <tr>
                        <td><%=producto.getCodigo()%></td>
                        <td><%=producto.getDescripcion()%></td>
                        <td><%=producto.getPrecio()%></td>
                        <td><%=producto.getStock()%></td>
                        <td><%=producto.getEstado()%></td>
                        <td><a href="ControladorProducto?opc=edit&codigo=<%=producto.getCodigo()%>">Editar</a></td>
                        <td><a href="ControladorProducto?opc=delete&codigo=<%=producto.getCodigo()%>">Eliminar</a></td>
                    </tr>
                    <%
                        }
                    %>
                </tbody>
            </table>
              <%=rptaTransaccion %>
        </div>              
    </body>
</html>

Comentarios

Entradas populares de este blog

Estructura y distribución del IDE Eclipse (ADT)

Entenderemos como esta estructurado y organizado eclipse (ADT es una distribución de eclipse), y asi no complicarnos en nuestro desarrollo en saber donde encontrar algo, dado que muchos desarrolladores quizá es su primera experiencia con eclipse. Esta explicación aplica para cualquier IDE Eclipse dado que todos se rigen bajo el mismo paradigma. Desarrollo 1. Workspace, eclipse trabaja los proyectos dentro de un Workspace (espacio de trabajo) que es la ruta de una carpeta física en disco sale para escoger la ruta al abrir el eclipse, recomiendo no enrutar a una carpeta que este en una memoria USB porque a veces se corrompe y es lento compilando 2. Estructura del IDE , tiene 4 regiones importantes ubicadas en la forma como se muestra la imagen, ademas hay otras dos secciones encerradas de color Rojo una ya conocida como menus y herramientas y la otra como perspectivas <1> Es la vista de proyectos, los puedes ver agrupados como proyecto, como estructura de carpetas, etc.

Crear aplicación móvil J2ME desde cero con NetBeans

Todos los ejemplos hechos en este blog son para emuladores o dispositivos que soporten configuración CLCD-1.1 y perfil MIDP-2.0 hacia adelante y los ejemplos serán desarrollados en el IDE Netbeans. 1. INTRODUCCIÓN Veremos como crear una aplicación móvil J2ME en NetBeans, esto sera indiferente de la versión NetBeans que estes usando; el proceso es similar en todas las versiones (6.x, 7.x, etc.). Aprenderemos a crear proyectos, paquetes, Midlets y clases.

APK, Proceso de empaquetado y desempaquetado (compilación e instalación de un APK en un dispositivo Android)

El archivo ejecutable o paquete de instalación de una aplicación Android tiene una extensión . APK , esta es un empaquetado (conjunto de archivos compilados y recursos dentro de un espacio de nombre o paquete) que se crea cuando compilamos un proyecto Android. Asimismo cuando este .APK se instala en un dispositivo Android; lo que hace el sistema operativo Android es desempaquetar este . APK y crear una estructura con ese nombre de espacio o paquete; este es creado dentro de su directorio de aplicaciones en el sistema de archivos del dispositivo. Notas Adicionales - Por eso el nombre del Package Name de una aplicación debe ser único, haciendo la comparación con una estructura de carpetas no podemos tener 2 nombres de carpetas iguales en una ruta X. - Para los que no recuerdan cual es el package name de su proyecto este es creado al inicio del proyecto, pero también lo pueden encontrar en el Manifest.xml