miércoles, 25 de enero de 2017

HIBERNATE

Hibernate es un Framework de persistencia de Java. En esencia, la persistencia es la pervivencia de información en memoria para trabajar con ella o para traspasarla a otro lugar.

En el caso de la programación orientada a objetos, los frameworks de persistencia como Hibernate abren una sesión para trabajar con ellos y bases de datos. Un objeto está persistido cuando éste está en la sesión de Hibernate.

En los frameworks de persistencia existe otro concepto clave: el de transacción. En la sesión de Hibernate se abre también normalmente una transacción, que es la que controla todos los pasos que hay que dar con los objetos y en caso de que exista un error o fallo en medio del proceso, hace rollback. El entorno de sesión y la transacción hacen de los frameworks de persistencia algo muy útil para trabajar con objetos y bases de datos.



Para comenzar he encontrado este enlace con un ejemplo práctico:

En el se tratan los aspectos básicos persistencia, transaccionalidad, así como los ficheros de configuración para sesiones y mapeos con las clases, también se ve como se pueden hacer distintas QUERYS de ejemplo.


Los apasos a seguir son:

1. Instalar Hibernate, para Eclipse, nos descargamos Hibernate, y copiamos las librerías que necesitemos para incluirlas en nuestro workspace, en caso de tener MAVEN, podemos configurarlo para que incluya los .jar necesarios.

2. Añadir el fichero hibernate.cfg.xml con la configuración necesaria para conectar con la BBDD.

3. Crear los POJOS y archivos hmb.xml. (Las clases y los ficheros para mapearlos.)

4. Clase para generar sesiones y controlar transacciones. OPCIONAL, si no se puede controlar en el DAO.

5. Si ya teníamos nuestros métodos para hacer la querys deben adaptarse a Hibernate para tratar las sesiones y las transacciones, que sean parecidos a esto:


  /* Method to  READ all the employees */
   public void listEmployees( ){
      Session session = factory.openSession();
      Transaction tx = null;
      try{
         tx = session.beginTransaction();
         List employees = session.createQuery("FROM Employee").list(); 
         for (Iterator iterator = 
                           employees.iterator(); iterator.hasNext();){
            Employee employee = (Employee) iterator.next(); 
            System.out.print("First Name: " + employee.getFirstName()); 
            System.out.print("  Last Name: " + employee.getLastName()); 
            System.out.println("  Salary: " + employee.getSalary()); 
         }
         tx.commit();
      }catch (HibernateException e) {
         if (tx!=null) tx.rollback();
         e.printStackTrace(); 
      }finally {
         session.close(); 
      }
   }

No hay comentarios:

Publicar un comentario