lunes, 30 de septiembre de 2013

Mantenimiento de Alumnos en Jsf

Mantenimiento de Articulo Alumnos jsf



Mantenimiento de Articulo de alumnos
En esta primera ejemplo mostrar dataTable para mostrar registros para poder manipular información


1. Ambiente de desarrollo
- JDK v1.6.0.27
- Netbeans v7.1.2
- MySql v5.1.61
- Apache tomcat 7
 
Crear una clase llamado Alumno

public class Alumno {
      private Integer id;
      private String dni;
      private String paterno;
      private String materno;
      private String nombres;
      private String direccion;
      private String telefono;
      private String correo;

      public Alumno() {

      }
Crear el get y set


Crear una clase llamado AlumnoDao


public class AlumnoDao {
      private SqlSessionFactory sqlSessionFactory;
      public AlumnoDao() {
            sqlSessionFactory = MyBatisConnectionFactory.getSqlSessionFactory();
      }
      public void insertar (Alumno alumno){
            SqlSession session = sqlSessionFactory.openSession();
            try {
                  session.insert("Alumno.insertar", alumno);
                  session.commit();
            } catch (Exception e) {
                  System.out.println("Error en AlumnoDao>insertar: " + e.getMessage());
                  session.rollback();
                 
            }finally{
                  session.close();
            }
      }
      public void actualizar (Alumno alumno){
            SqlSession session = sqlSessionFactory.openSession();
            try {
                  session.insert("Alumno.actualizar", alumno);
                  session.commit();
            } catch (Exception e) {
                  System.out.println("Error en AlumnoDao>actualizar: " + e.getMessage());
                  session.rollback();
                 
            }finally{
                  session.close();
            }
      }
      public Alumno buscarPorId(Integer id) {
            SqlSession session = sqlSessionFactory.openSession();
            try {
                  Alumno alumno  = session.selectOne("Alumno.buscarPorId", id);
                  return alumno;
            } catch (Exception e) {
                  System.out.println("Error en AlumnoDao>buscarPorId: "
                             + e.getMessage());
                  return null;
            }finally{
                  session.close();
            }
      }
     
      public List<Alumno> buscarTodos() {
            SqlSession session = sqlSessionFactory.openSession();
            try {
                  List<Alumno> alumnos = session.selectList("Alumno.buscarTodos");
                  return alumnos;
            } catch (Exception e) {
                  System.out.println("Error en AlumnoDao>buscarTodos: "
                             + e.getMessage());
                  return null;
            } finally {
                  session.close();
            }
      }
      public void eliminar(Integer id) {
            SqlSession session = sqlSessionFactory.openSession();
            try {
                  session.delete("Alumno.eliminar", id);
                  session.commit();
            } catch (Exception e) {
                  System.out.println("Error en AlumnoDao>eliminar: "+e.getMessage());
                  session.rollback();
            } finally {
                  session.close();
            }
      }
     
}


Crear una clase llamado AlumnoBean

public class AlumnoBean implements Serializable {

      private static final long serialVersionUID = 1L;
      private Alumno alumno;
      private List<Alumno> alumnos;
      private AlumnoDao alumnoDao;

      public AlumnoBean() {
            alumno = new Alumno();
      }

      public Alumno getAlumno() {
            return alumno;
      }

      public void setAlumno(Alumno alumno) {
            this.alumno = alumno;
      }

      public List<Alumno> getAlumnos() {
            alumnoDao = new AlumnoDao();
            alumnos = alumnoDao.buscarTodos();
            return alumnos;
      }

      public void prepararInsertar() {
            System.out.println("preparar Insertar");
            alumno = new Alumno();
      }

      public void insertar() {
            alumnoDao = new AlumnoDao();
            alumnoDao.insertar(alumno);
      FacesUtils.showFacesMessage("Alumno insertado exitosamente.", 3);
            System.out.println("Datos insertados");
      }

      public void prepararActualizar(Integer id) {
            System.out.println("Dentro Actualizar");
            alumnoDao = new AlumnoDao();
            alumno = alumnoDao.buscarPorId(id);
      }

      public void actualizar() {
            System.out.println("Actualizar");
            alumnoDao = new AlumnoDao();
            alumnoDao.actualizar(alumno);
            FacesUtils.showFacesMessage("Alumno actualizado exitosamente.", 3);
      }

      public void prepararEliminar(Integer id) {
            System.out.println("preparar eliminar");
            alumnoDao = new AlumnoDao();
            alumno = alumnoDao.buscarPorId(id);
      }

      public void eliminar() {
            System.out.println("eliminado");
            alumnoDao = new AlumnoDao();
            alumnoDao.eliminar(alumno.getId());
      FacesUtils.showFacesMessage("Alumno eliminado exitosamente.", 3);
      }
Crear un formulario con xhtml con nombre usuario

<h:form id="form">
<p:messages showSummary="true" showDetail="true"/>

<p:panel id="panel" header="Mantenimiento de Alumnos" style="margin-bottom:10px; ">

<h:panelGrid id="growlEditar" columns="4">
<h:outputLabel style="margin-left: 5px;" id="textDni" for="dni"
value="(*)Dni: " />
<p:inputText id="dni" value="#{alumnoBean.alumno.dni}"
style="width:228px; margin: 10px 5px 5px 5px" required="true"
label="titulo" requiredMessage="Paterno: campo obligatorio">
<f:validateLength minimum="8" maximum="8" />
</p:inputText>
<h:outputLabel style="margin-left: 5px;" id="textPaterno"
for="paterno" value="(*)Paterno: " />
<p:inputText id="paterno" value="#{alumnoBean.alumno.paterno}"
style="width:228px; margin: 10px 5px 5px 5px" required="true"
label="titulo" requiredMessage="Paterno: campo obligatorio">
<f:validateLength minimum="6" maximum="50" />
</p:inputText>
<h:outputLabel style="margin-left: 5px;" id="textMaterno"
for="materno" value="(*)Materno: " />
<p:inputText id="materno" value="#{alumnoBean.alumno.materno}"
style="width:228px; margin: 10px 5px 5px 5px" required="true"
label="titulo" requiredMessage="Materno: campo obligatorio">
<f:validateLength minimum="6" maximum="50" />
</p:inputText>
<h:outputLabel style="margin-left: 5px;" id="textNombres"
for="nombres" value="(*)Nombres: " />
<p:inputText id="nombres" value="#{alumnoBean.alumno.nombres}"
style="width:228px; margin: 10px 5px 5px 5px" required="true"
label="titulo" requiredMessage="Nombres: campo obligatorio">
<f:validateLength minimum="6" maximum="50" />
</p:inputText>
<h:outputLabel style="margin-left: 5px;" id="textDireccion"
for="direccion" value="(*)Direccion: " />
<p:inputText id="direccion" value="#{alumnoBean.alumno.direccion}"
style="width:228px; margin: 10px 5px 5px 5px" required="true"
label="titulo" requiredMessage="Direccion: campo obligatorio">
<f:validateLength minimum="6" maximum="50" />
</p:inputText>
<h:outputLabel style="margin-left: 5px;" id="textTelefono"
for="telefono" value="(*)telefono: " />
<p:inputText id="telefono" value="#{alumnoBean.alumno.telefono}"
style="width:228px; margin: 10px 5px 5px 5px" required="true"
label="titulo" requiredMessage="Telefono: campo obligatorio">
<f:validateLength minimum="6" maximum="50" />
</p:inputText>
<h:outputLabel style="margin-left: 5px;" for="correo"
value="(*)Correo: " />
<p:inputText id="correo" value="#{alumnoBean.alumno.correo}"
style="width:228px; margin: 5px 5px 10px" required="true"
validatorMessage="Correo incorrecto" label="correo"
requiredMessage="Correo: campo obligatorio">
<f:validateLength maximum="100" />
<f:validateRegex
pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" />
</p:inputText>
</h:panelGrid>
</p:panel>



<p:commandButton  style="margin-left: 10px;" value="Nuevo" update=":form" actionListener="#{alumnoBean.limpiar}" />
<p:commandButton  style="margin-left: 10px;" value="Guardar" update=":formdata" actionListener="#{alumnoBean.insertar}"/>
<p:commandButton  style="margin-left: 10px;" value="Modificar" update=":formdata" actionListener="#{alumnoBean.actualizar}"/>

<p:separator />
<p:spacer height="20" />
</h:form>
<h:form id="formdata">
<p:dataTable id="dataTable" var="t" value="#{alumnoBean.alumnos}"
emptyMessage="No hay usuarios disponibles." paginator="true"
rows="10" paginatorPosition="bottom"
paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15">
<p:column headerText="Id">
<h:outputText value="#{t.id}" />
</p:column>
<p:column headerText="Dni">
<h:outputText value="#{t.dni}" />
</p:column>
<p:column headerText="Paterno" style="width:25%;">
<h:outputText value="#{t.paterno}" />
</p:column>
<p:column headerText="Materno" style="width:25%;">
<h:outputText value="#{t.materno}" />
</p:column>
<p:column headerText="Nombre" style="width:25%;">
<h:outputText value="#{t.nombres}" />
</p:column>
<p:column headerText="Direccion" style="width:75%;">
<h:outputText value="#{t.direccion}" />
</p:column>
<p:column headerText="Telefono" style="width:75%;">
<h:outputText value="#{t.telefono}" />
</p:column>
<p:column headerText="Correo" style="width:75%;">
<h:outputText value="#{t.correo}" />
</p:column>
<p:column headerText="M" style="width:75%; text-align:center;">

<p:commandButton update=":form:growlEditar"
actionListener="#{alumnoBean.prepararActualizar(t.id)}"
title="Editar" icon="ui-icon-pencil"
/>

</p:column>
<p:column headerText="M" style="width:5%; text-align:center;">

<p:commandButton actionListener="#{alumnoBean.prepararEliminar(t.id)}"
oncomplete="dlgEliminar.show();" title="Eliminar"
icon="ui-icon-close">
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>

<h:form id="formEliminar">
<p:growl id="growlEliminar" sticky="true" />
<p:confirmDialog id="dlgEliminar"
message="¿Desea eliminar este Alumno?" header="Eliminar Integrante"
severity="alert" widgetVar="dlgEliminar">
<p:commandButton value="Eliminar"
update=":formdata:dataTable growlEliminar, dlgEliminar"
actionListener="#{alumnoBean.eliminar}"
oncomplete="dlgEliminar.hide()" icon="icon-delete" />
<p:commandButton value="Cancelar" update=":formdata:dataTable"
oncomplete="dlgEliminar.hide()" icon="icon-cancel" />
</p:confirmDialog>

</h:form>

Resultado