jueves, 14 de abril de 2011

CRUD Ejemplo - Spring

Ahora vamos a crear un bean para gestionar las operaciones a nivel de controlador, el cual definimos en el applicationContext.xml asi:

<bean class="com.ejemplo.vaadin.servicios.impl.ServicioUsuariosImpl" id="servicioUsuarios"></bean>

Este bean tiene inyectado el daoUsuarios y sirve de intermediario entre entre la vista y el modelo, que en este caso solo va a guardar una entidad usuario en la BD.

Este bean contiene el siguiente código:
 /*

* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.ejemplo.vaadin.servicios;
import com.ejemplo.vaadin.entidades.Usuario;
import java.util.List;
/**
* Servicio con los metodos necesarios para gestionar los usuarios en la BD
* @author josorio
*/
public interface ServicioUsuarios
{
/**
* Método para retornar una lista con todos los usuarios activos(no eliminados)
* en la base de datos
* @return Una lista con todos los usuarios en la BD
*/
public List<Usuario> usuarios();
/**
* Guarda el usuario entregado, si no existía lo crea
* @param usuario
* @return Alguno de los siguientes valores:
* <ul>
* <li>0: En caso de crear el usuario exitosamente</li>
* <li>1: En caso de el usuario no tener privilegios</li>
* <li>2: En caso de no haber sesión</li>
* <li>3: En caso de error</li>
* </ul>
*/
public Integer guardarUsuario( Usuario usuario );
}
 /*

* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.ejemplo.vaadin.servicios.impl;
import com.ejemplo.vaadin.dao.DaoUsuario;
import com.ejemplo.vaadin.entidades.Usuario;
import com.ejemplo.vaadin.servicios.ServicioUsuarios;
import java.io.Serializable;
import java.sql.BatchUpdateException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.hibernate.exception.ConstraintViolationException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataIntegrityViolationException;
public class ServicioUsuariosImpl implements ServicioUsuarios, Serializable
{
@Autowired
DaoUsuario daoUsuarios;
/** @{inheritDoc} */
public List<Usuario> usuarios()
{
List<Usuario> retorno = null;
retorno = daoUsuarios.getActivos();
if( retorno == null )
{
retorno = new ArrayList<Usuario>();
}
return retorno;
}
/** @{inheritDoc} */
public Integer guardarUsuario( Usuario usuario )
{
Integer retorno = 1;
try
{
daoUsuarios.guardar( usuario );
retorno = 0;
}catch (ConstraintViolationException e) {
retorno = 4;
} catch (DataIntegrityViolationException e) {
retorno = 4;
}
catch( Exception e )
{
e.printStackTrace();
retorno = 3;
}
return retorno;
}
}

Este servicio es inyectado del lado de la vista para administrar los usuarios.

Siguiente: Vista
Volver al menú

No hay comentarios:

Publicar un comentario