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 Datos; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.HibernateException; import Entidades.Consulta; import java.util.Date; import java.util.List; import org.hibernate.Query; /** * * @author ernesto */ public class ConsultaDAO { private Session sesion; private Transaction tx; private void iniciarOperacion() throws HibernateException { sesion = HibernateUtil.getSessionFactory().openSession(); tx = sesion.beginTransaction(); } private void manejaExcepcion(HibernateException he) throws HibernateException { tx.rollback(); throw new HibernateException("Ocurri un error en la capa de acceso a datos", he); } public long insertar(Consulta consulta) throws HibernateException { long id = 0; try { iniciarOperacion(); id = (long) sesion.save(consulta); tx.commit(); } catch (HibernateException he) { manejaExcepcion(he); } finally { sesion.close(); } return id; } public void modificar(Consulta consulta) throws HibernateException { try { iniciarOperacion(); sesion.update(consulta); tx.commit(); } catch (HibernateException he) { manejaExcepcion(he); } finally { sesion.close(); } } public void eliminar(Consulta consulta) throws HibernateException { try { iniciarOperacion(); sesion.delete(consulta); tx.commit(); } catch (HibernateException he) { manejaExcepcion(he); } finally { sesion.close(); } } public Consulta obtener(long id) throws HibernateException { Consulta consulta = null; try { iniciarOperacion(); consulta = (Consulta) sesion.get(Consulta.class, id); } catch (HibernateException he) { manejaExcepcion(he); } finally { sesion.close(); } return consulta; } public List<Consulta> obtenerTodos() throws HibernateException { List<Consulta> lista = null; try { iniciarOperacion(); lista = sesion.createQuery("from Consulta").list(); } finally { sesion.close(); } return lista; } public List<Consulta> obtenerTodosPorFecha(Date fechaInicial, Date fechaFinal) throws HibernateException { List<Consulta> lista = null; try { iniciarOperacion(); Query query = sesion.createQuery("from Consulta where fecha between :fechaInicial and :fechaFinal"); query.setDate("fechaInicial", fechaInicial); query.setDate("fechaFinal", fechaFinal); lista = query.list(); } finally { sesion.close(); } return lista; } }