Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Modelo; import Mapeo.Cliente; import Mapeo.PruebaCliente; import java.util.List; import javax.validation.ConstraintViolationException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; /** * @author Mixbaal Jun Software - Ingenieria de Software, 2016 FCiencias, UNAM * @version 1.0 * Clase que sirve para interactuar con la base de datos, especficamente con * las tablas Cliente y PruebaCliente */ public class PruebaClienteDAO { //Atributo privado que sirve para conectarse con la base de datos private SessionFactory sessionFactory; /** * Mtodo que inicializa la sesin con la base de datos * @param sessionFactory */ public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } /** * Mtodo que guarda un objeto pruebacliente en la base de datos * @param pruebacliente */ public void guardar(PruebaCliente pruebacliente) { Session session = sessionFactory.openSession(); Transaction tx = null; try { tx = session.beginTransaction(); session.persist(pruebacliente); tx.commit(); } catch (Exception e) { if (tx != null) { tx.rollback(); } e.printStackTrace(); } finally { session.close(); } } /** * Mtodo que guarda una prueba cliente con los datos que se * pasan como parmetro * @param prueba * @param idCliente */ public void guardar(int prueba, long idCliente) { Session session = sessionFactory.openSession(); Transaction tx = null; try { tx = session.beginTransaction(); Cliente cliente = (Cliente) session.get(Cliente.class, idCliente); PruebaCliente pruebacliente = new PruebaCliente(); pruebacliente.setCliente(cliente); pruebacliente.setPrueba(prueba); session.persist(pruebacliente); tx.commit(); } catch (Exception e) { if (tx != null) { tx.rollback(); } e.printStackTrace(); } finally { session.close(); } } /** * Mtodo que actualiza un objeto pruebacliente en la base de datos * @param pruebacliente */ public void actualizar(PruebaCliente pruebacliente) { Session session = sessionFactory.openSession(); Transaction tx = null; try { tx = session.beginTransaction(); session.update(pruebacliente); tx.commit(); } catch (Exception e) { if (tx != null) { tx.rollback(); } e.printStackTrace(); } finally { session.close(); } } /** * Mtodo que elimina un objeto pruebacliente de la base de datos * @param pruebacliente */ public void eliminar(PruebaCliente pruebacliente) { Session session = sessionFactory.openSession(); Transaction tx = null; try { tx = session.beginTransaction(); session.delete(pruebacliente); tx.commit(); } catch (Exception e) { if (tx != null) { tx.rollback(); } e.printStackTrace(); } finally { session.close(); } } /** * Mtodo que regresa una lista de objetos pruebacliente asociados con el * cliente cuyo id se pasa como parmetro * @param idCliente * @return */ public List<PruebaCliente> getPruebasCliente(long idCliente) { List<PruebaCliente> pcliente = null; //System.out.print(idParticipante); Session session = sessionFactory.openSession(); Transaction tx = null; try { tx = session.beginTransaction(); String hql = "from PruebaCliente pc where pc.cliente.persona.idPersona = :idcliente"; Query query = session.createQuery(hql); query.setParameter("idcliente", idCliente); pcliente = (List<PruebaCliente>) query.list(); tx.commit(); } catch (Exception e) { if (tx != null) { tx.rollback(); } e.printStackTrace(); } finally { session.close(); } return pcliente; } /** * Mtodo que regresa una lista de objetos pruebacliente que estan asociados * con la persona cuyo correo es el que se pasa como parmetro * @param correo * @return */ public List<PruebaCliente> getPruebasCliente(String correo) { List<PruebaCliente> pcliente = null; //System.out.print(idParticipante); Session session = sessionFactory.openSession(); Transaction tx = null; try { tx = session.beginTransaction(); String hql = "from PruebaCliente pc where pc.cliente.persona.correo = :correo"; Query query = session.createQuery(hql); query.setParameter("correo", correo); pcliente = (List<PruebaCliente>) query.list(); tx.commit(); } catch (ConstraintViolationException cve) { } catch (Exception e) { if (tx != null) { tx.rollback(); } e.printStackTrace(); } finally { session.close(); } return pcliente; } }