//
you're reading...
Others

Trabajando con Hibernate y Eclipse Helios.Parte III(Últimos pasos de Configuración).


En esta parte necesito aclarar algo muy importante , en la Parte I y Parte II vimos como configurar el «PLUGIN»  de Hibernate para Eclipse Helios.

Lo que significa que si piensas que con el plugin instalado ya puedes ponerte a programar , lamento decirte que aún no.

Bueno los últimos pasos de configuración son:

1.-

Debemos bajar la ultima distro de Hibernate la puedes conseguir aquí.

 

2.- Ahora debemos preparar el distro para ser agregado a eclipse.

Nos creamos una carpeta llamada Hibernate aparte  la idea es que en esa carpeta vallamos copiando las librerias que necesitamos.

Debemos de  descomprimir el zip que hemos descargado y adentro de ella veremos todo el distro de hibernate de ahi copiaremos el archivo hibernate3.jar .

También debemos entrar a  lib->Required  y seleccionar todos los archivos y los copiamos a nuestra carpeta hibernate.

Por ultimo debemos meternos a lib>jpa y copiar los archivos y también pegarlos en nuestra carpeta hibernate

Con esto debemos tener la carpeta  con estos archivos.

 

  • hibernate3.jar
  • antlr-2.7.6.jar
  • commons-collections-3.1.jar
  • dom4j-1.6.1.jar
  • hibernate-jpa-2.0-api-1.0.0.Final.jar
  • javassist-3.12.0.GA.jar
  • jta-1.1.jar
  • slf4j-api-1.6.1.jar

Por alguna extraña razon que desconozco en lo personal si agregamos estas librerias deberia funcionar sin problemas hibernate pero no es asi.

Falta agregar una libreria extra que la podemos encontrar en slf4j.org

descarga la ultima version que es la 1.6.1 de aquí

 

Ahora bien, descomprimimos el zip de slf4j y buscamos el jar llamado slf4-simple-1.6.1.jar y lo copiamos a nuestra carpeta de hibernate.

 

Ahora si ya tenemos todo listo! Abrimos nuestro eclipse y  le damos boton derecho del mouse a nuestro proyecto y nos dirigimos  a Build Path –> Add Libreries

 

Librerias

 

Nos va aparecer una ventana como esta:

image

Seleccionamos User Library  ahora  le damos en siguiente y nos llevara a la siguiente ventana donde presionaremos el boton User Library y le damos en el Boton New  y nos pedirá el nombre de la librería personalizada que queremos agregar bueno aquí yo le puse HibernateLib pero puedes nombrarla como quieras.

Ahora solo le damos en Add JARs y seleccionamos todos los jars de nuestra carpeta hibernate  que contiene todas las librerías que vamos a ocupar.

nos quedaría algo asi:

image

 

Le damos en OK y listo si todo salió bien ya podremos trabajar con Hibernate.

Como ya sabrán hibernate trabaja por sesiones  para no manejar tecnicismos simplemente  crea una instancia a la base de datos para que podamos trabajar en ella  , un error muy común es que por cada clase iniciamos una sesión esto  en muchos casos puede generar errores y consumo incensario de memoria . Lo recomendable es crear una única instancia que se utilice para toda nuestra aplicación , para lograr esto necesitamos crear un singleton.

Para los que no saben que es un singleton dejo aquí un articulo que puede aclarar la duda.

Creamos una clase llamada     SessionFactoryUtil.java en el paquete modelos de nuestro proyecto de ejemplo y escribimos el siguiente codigo:


package modelos;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class SessionFactoryUtil {
	 private static final SessionFactory sessionFactory;

	    static {
	        try {
	            // Create the SessionFactory from standard (hibernate.cfg.xml) 
	            // config file.
	            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
	        } catch (Throwable ex) {
	            // Log the exception. 
	            System.err.println("Initial SessionFactory creation failed." + ex);
	            throw new ExceptionInInitializerError(ex);
	        }
	    }

	    public static SessionFactory getSessionFactory() {
	        return sessionFactory;
	    }
}

Con esta clase  nosotros podemos obtener la  sesión actual de cualquier parte de nuestra aplicación!

Ahora en el default package nos creamos una clase llamada Main.Java de aquí correremos nuestro proyecto aquí dejo el código:

 

 


import modelos.SessionFactoryUtil;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		SessionFactory sesion= SessionFactoryUtil.getSessionFactory();


	
	}

}

Con una sola línea de código podemos obtener la sesión creada por el singleton este es el mismo mecanismo para nuestras n clases en las que deseemos realizar operaciones con nuestra base de datos.

 

Corremos nuestro proyecto desde el Main.java y si todo sale bien no nos marcara ningún error.

Con esto  sabemos que nuestro esta listo para desarrollar nuestras aplicaciones con Hibernate!.

 

Adjunto el  proyecto completo en mi SkyDrive  es llamado HibernateExample.rar

 

Espero esto sea de utilidad para quien quiera trabajar con hibernate y eclipse Helios!

Saludos!.

Acerca de kusanagixi

Desarrollador de Software,multimedia,diseño

Comentarios

12 comentarios en “Trabajando con Hibernate y Eclipse Helios.Parte III(Últimos pasos de Configuración).

  1. Hola Ricardo, esta muy bueno lo que posteaste, llega ok sin errores… ahora lo que no se puede continuar es con la recuperacion de los datos de la base, por lo que estuve buscando y viendo, son cosas de configuracion de hibernate (en el hibernate.reveng.xml), hay que especificarle de donde tomar los datos, tablas-columnas, etc. yo antes intente realizar un proyecto con hibernate, tenia un ejemplo que especificaba eso, pero a la hora de modificarlo nunca anduvo :). Por ahi lo que te comento te sirve como para ver que es lo que falta, yo si logro recuperar los datos de la base para trabajar con ellos, te comento como lo hice.
    Saludos.

    Publicado por luciano | julio 21, 2011, 9:24 pm
    • A partir del tutorial y del Quickstart de jBoss Hibernate acabo de hacer esta prueba:

      public static void main(String[] args) {
      // A SessionFactory is set up once for an application
      SessionFactory sessionFactory = new Configuration()
      .configure() // configures settings from hibernate.cfg.xml
      .buildSessionFactory();
      Session session = sessionFactory.openSession();
      session.beginTransaction();
      Grupo g = new Grupo();
      g.setIdGrupo(9);
      g.setNombre(«Grupo Auto 4»);
      session.save(g);
      session.getTransaction().commit();

      // Recuperacion mediante HQL:
      session.beginTransaction();
      List result = session.createQuery( «from Grupo» ).list();
      for ( Grupo g1 : (List) result ) {
      System.out.println( «Grupo (» + g1.getIdGrupo() + » -> » + g1.getNombre()
      + «)» );
      }
      session.getTransaction().commit();
      session.close();
      }

      Y ha funcionado, tras ejecutarlo varias veces cambiando los datos en setIdGrupo y en setNombre el resultado del HQL fue:

      Grupo (1 -> S302)
      Grupo (2 -> S401)
      Grupo (3 -> S501)
      Grupo (4 -> S602)
      Grupo (5 -> S702)
      Grupo (6 -> Grupo Auto 1)
      Grupo (7 -> Grupo Auto 2)
      Grupo (8 -> Grupo Auto 3)
      Grupo (9 -> Grupo Auto 4)

      Saludos.

      Publicado por Chus | septiembre 11, 2011, 3:12 pm
      • no manches en las lineas en donde llamas al List result me marca error? que tranza entonces?, todo lo demás si me sale pero me marca como si tuviera que importar «List cannot be resolved to a type»

        Publicado por David | noviembre 6, 2011, 5:51 am
  2. Muy bueno el articulo, me sirvió mucho, Gracias.
    Como recomendación solo que publiques otro articulo con ejemplos de código para insertar, eliminar y actualizar datos de la BD utilizando esta persistencia de Hibernate.

    Publicado por henry | agosto 11, 2011, 6:59 pm
  3. Hola ricardo no se si me puedes ayudar he seguido al pie de la letra tu ejemplo y a mi me sale un error el siguiente no se q hacer este es el error:

    Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial

    Publicado por josimar | agosto 12, 2011, 8:44 pm
  4. Hola Ricardo, soy nuevo en esto de eclipse con spring y hibernate, ya tengo todo hasta esta parte que publicaste sin embargo no se como generar los jsp y ligarlos con sus clases para hacer altas bajas y cambios…¿me pudieras orientar con un ejemplo?, te lo agradecería mucho.

    Saludos!

    Publicado por Gerardo Mtz | agosto 18, 2011, 12:26 am
  5. Hola Ricardo, me pasa lo mismo que a josimar. Al darle a ejecutar, me aparece
    javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial.
    Estoy ejecutando en Linux en vez de en Windows. Pero entiendo que eso no debe ser problema
    Saludos

    Publicado por tropocolo | agosto 18, 2011, 8:36 am
    • Debes editar el archivo «hibernate.cfg.xml». Probablemente tienes establecido el parámetro name. Si en el archivo aparece una línea como la siguiente: . Cámbiala para que quede de la siguiente manera: . Con eso debería funcionar.

      Publicado por Glenn S. | agosto 26, 2011, 8:11 am
    • Disculpa que no haya salido la mención de la línea. No sé qué pasó ahí. La línea de la que te hablo es la siguiente: session-factory name= «algún nombre» . Debes cambiarla por: session-factory . Es decir, elimina el parámetro name y listo.

      Publicado por Glenn S. | agosto 26, 2011, 8:15 am
  6. Hola como estas, te hago una pregunta, si podes mandame la respuesta por correo, como se hace el HibernateUtil para eclipse? en netbeans lo hace pero aqui no veo que lo haga o lo tengo que ahcer manualmente? espero tu respuesta gracias.

    Publicado por huaymas | octubre 28, 2011, 7:45 pm
  7. Hola una pregunta cuales serían las diferencias si trabajaríamos con Maven e Hibernate en eclipse. Solo sería las librerías? … Espero tu respuesta

    Saludos

    Publicado por Sarita | diciembre 14, 2011, 10:28 pm
  8. amigo genial el tuto se agradece.
    estoy recien metiendome en hibernate y me parece genial ahora estoy tratando de leer los datos que tengo en mi DB pero no se como estoy buscando en otro lados pero trabajan de una forma distinta con DAO pero no se como implmentarlo con el ejemplo que hiciste aca si puedes ayudarme con esto te lo agradeceria o si alguien me puede colaborar tambien se agradece.

    Publicado por leardev | diciembre 27, 2011, 9:48 pm

Deja un comentario

Encuesta del Mes.

Estadisticas del Blog

  • 53.996 hits