/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package DAO;
import Entity.Usuario;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.NonUniqueResultException;
import javax.persistence.Persistence;
import javax.persistence.Query;
/**
*
* @author Leonardo
*/
public class UsuarioDAO {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("PPG_PU");
public void crear(Usuario usuario) {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.merge(usuario);
try {
em.flush();
em.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
} finally {
em.close();
}
}
public Usuario leer(long identificacion, long codigo) {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Usuario usuario = new Usuario();
Query cons = null;
if (codigo == 0) {
cons = em.createQuery("SELECT u FROM Usuario u "
+ "WHERE u.identificacion = :identificacion").setParameter("identificacion", identificacion);
} else {
cons = em.createQuery("SELECT u FROM Usuario u "
+ "WHERE u.codigo = :codigo").setParameter("codigo", codigo);
}
try {
usuario = (Usuario) cons.getSingleResult();
} catch (NonUniqueResultException e) {
usuario = (Usuario) cons.getResultList().get(0);
} finally {
em.close();
return usuario;
}
}
public ArrayList<Usuario> leer_usuarios() {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
ArrayList<Usuario> usuarios = new ArrayList<Usuario>();
Query cons = em.createQuery("SELECT u FROM Usuario u ");
try {
for (int i = 0; i < cons.getResultList().size(); i++) {
usuarios.add((Usuario) cons.getResultList().get(i));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
em.close();
return usuarios;
}
}
public void actualizar(Usuario usuario) {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.merge(usuario);
try {
em.flush();
em.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
} finally {
em.close();
}
}
}