dao.DireccionesDao.java Source code

Java tutorial

Introduction

Here is the source code for dao.DireccionesDao.java

Source

/*
 * 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 dao;

import java.util.ArrayList;
import java.util.List;
import model.City;
import model.Country;
import model.Direcciones;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import util.Defs;
import util.HibernateUtil;

/**
 *
 * @author Seix
 */
public class DireccionesDao {

    private SessionFactory sessionFactory = HibernateUtil.getSessionFactory();

    public List<Direcciones> getAll() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    /**
     * Crea una direccin en la base de datos. Recibe todos los datos de una
     * direccin. Primero recuperar de la base de datos la Ciudad, despus
     * crear el nuevo objeto a persistir en la base de datos.
     *
     * @param calle String nombre de la calle.
     * @param numero int numero de la calle.
     * @param idCiudad int Identificador de una City.
     * @param poblacion String nombre del municipio.
     * @param codigoPostal String cdigo postal.
     * @return True or False si la operacin ha tenido xito.
     */
    public boolean create(String calle, int numero, int idCiudad, String poblacion, String codigoPostal) {
        boolean creado = false;
        Session session = null;
        Direcciones direccion = null;

        try {
            session = sessionFactory.openSession();
            session.beginTransaction();

            //Primero recuperamos la ciudad de la BD
            City ciudad = (City) session.get(City.class, idCiudad);
            session.getTransaction().commit();
            if (ciudad != null) {
                direccion = new Direcciones(ciudad, calle, String.valueOf(numero), poblacion, codigoPostal);

                //Persistencia de datos
                session.beginTransaction();
                session.persist(direccion);
                session.getTransaction().commit();
                creado = true;
            }
        } catch (Exception e) {
            if (session != null) {
                session.getTransaction().rollback();
                System.out.println("\n Error message:\n" + e.getMessage() + "\n");
            }
            creado = false;
        } finally {
            if (session != null) {
                session.close();
            }
        }

        return creado;
    }

    /**
     * Actualiza los datos de una direccin de la base de datos. Se comprueban
     * los datos modificados y se actualiza la direccin con los nuevos datos.
     * Finalmente se guarda la informacin en la base de datos. Antes de
     * modificar la ciudad de la direccin se comprobar que esta existe en la
     * base de datos.
     *
     * @param id int Identificador de la direccion a modificar.
     * @param calle String nombre de la callse.
     * @param numero int nmero de la calle.
     * @param idCiudad int Identificador de una City.
     * @param provincia String nombre de provincia.
     * @param codigoPostal String cdigo postal.
     * @return True or False si la operacin ha tenido xito.
     */
    public boolean update(int id, String calle, int numero, int idCiudad, String poblacion, String codigoPostal) {

        boolean actualizado = false;
        Direcciones direccion = null;
        Session session = null;

        try {
            session = sessionFactory.openSession();

            //Primero obtenemos la direccin a modificar de la BD
            session.beginTransaction();
            Criteria criteria = session.createCriteria(Direcciones.class).add(Restrictions.like("id", id));
            direccion = (Direcciones) criteria.uniqueResult();
            session.getTransaction().commit();

            //Obtenemos la City con el identificador proporcionado
            session.beginTransaction();
            Criteria criteriaCity = session.createCriteria(City.class).add(Restrictions.like("id", idCiudad));
            City city = (City) criteriaCity.uniqueResult();
            session.getTransaction().commit();

            if (direccion != null && city != null) {

                //Actualizamos valores
                if (!direccion.getCalle().equals(calle)) {
                    direccion.setCalle(calle);
                }
                if (!direccion.getCity().equals(city)) {
                    direccion.setCity(city);
                }
                if (!direccion.getCp().equals(codigoPostal)) {
                    direccion.setCp(codigoPostal);
                }
                if (!direccion.getNumero().equals(String.valueOf(numero))) {
                    direccion.setNumero(String.valueOf(numero));
                }
                if (!direccion.getPoblacion().equals(poblacion)) {
                    direccion.setPoblacion(poblacion);
                }

                //Persistencia de datos
                session.beginTransaction();
                session.persist(direccion);
                session.getTransaction().commit();
                actualizado = true;
            }
        } catch (Exception e) {
            if (session != null) {
                session.getTransaction().rollback();
                System.out.println("\n Error message:\n" + e.getMessage() + "\n");
            }
            actualizado = false;
        } finally {
            if (session != null) {
                session.close();
            }
        }

        return actualizado;
    }

    public boolean delete(Direcciones direccion) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    public List<Country> getListCountry() {
        List<Country> paises = new ArrayList<>();
        Session session = null;

        try {
            session = sessionFactory.openSession();
            session.beginTransaction();
            Criteria critera = session.createCriteria(Country.class);
            paises = critera.list();
            session.getTransaction().commit();

        } catch (Exception e) {
            if (session != null) {
                session.getTransaction().rollback();
                System.out.println("\n Error message:\n" + e.getMessage() + "\n");
            }

        } finally {
            if (session != null) {
                session.close();
            }
        }
        return paises;
    }

    public List<City> getListCity(String codCountry) {
        List<City> ciudades = new ArrayList<>();
        Country pais = null;
        Session session = null;

        try {
            session = sessionFactory.openSession();
            session.beginTransaction();
            Criteria critera = session.createCriteria(Country.class).add(Restrictions.like("code", codCountry));
            pais = (Country) critera.uniqueResult();
            session.getTransaction().commit();

            if (pais != null) {
                session.beginTransaction();
                critera = session.createCriteria(City.class).add(Restrictions.like("country", pais));
                ciudades = critera.list();
                session.getTransaction().commit();
            }

        } catch (Exception e) {
            if (session != null) {
                session.getTransaction().rollback();
                System.out.println("\n Error message:\n" + e.getMessage() + "\n");
            }

        } finally {
            if (session != null) {
                session.close();
            }
        }
        return ciudades;
    }

}