003 - Aplicación de Stock con Java. Hibernate – MySQL – JPA. Creando paquetes, Base de Datos, realizando la conexión y configuración de HibernateUtil e hibernate.cfg.

Creando paquetes.

(Paquetes: Un Paquete en Java es un contenedor de clases que permite agrupar las distintas partes de un programa cuya funcionalidad tienen elementos comunes. Wikipedia…)

Para crear un paquete hacemos clic derecho sobre “Paquetes de fuentes” que esta dentro del proyecto desplegado. Clic en “Nuevo” y seleccionando “Paquete Java…” le especificamos el nombre. Abajo la lista de paquetes a utilizar. (Img. 1)

  • com.app
    Para almacenar los formularios y clases ejecutables y de apoyo.
  • com.entidades
    Para almacenar las clases persistentes.
  • com.img
    Para almacenar las imágenes que utilizaremos para el proyecto.
  • com.informe
    Para almacenar los informes.
  • ultil
    Para almacenar la clase HibernateUtil. (Img. 2)

    Creando la Base de Datos, realizando la conexión y configuración de HibernateUtil e hibernate.cfg.

    Creando Base de Datos.

    Abrimos nuestro MySQL Workbench, que ya tendríamos de tener instalado junto con el MySQL y la instancia ya creada. Accedemos a “Local MySQL” como “root” indicando contraseña si tenemos configurado de esa forma.

    Ya dentro de la sesión hacemos clic sobre el icono de “Create a New Shema”, damos un nombre a la Base de Datos, en este caso “proyecto”, clic en “Apply”, nuevamente “Apply” y listo, ya tenemos nuestra Base de Datos. Las tablas las creará el Hibernate. (Img. db 1).


    Realizando la conexión y configuración de hibernate.cfg.

    Al configurar el hibernate.cfg también configuramos la conexión con la Base de Datos. Lo cual quiere decir que la misma queda a cargo del Hibernate. Desplegamos el proyecto, hacemos clic sobre “Paquetes de fuentes – Nuevo – Otros”. Dentro de categorías seleccionamos “Hibernar”, en “Tipos de Archivos” indicamos “Asistente de configuración de Hibernate” y clic en “Siguiente” (Img. 3).

    En la pantalla que aparece dejamos todo como está “Nombre de archivo: hibernate.cfg” “Carpeta: src”, este último indica que se guarda dentro del paquete predeterminado y no dentro de las que hemos creado. (Img. 4)

    Pantalla siguiente “Selecciones Data Source”. Dentro de “Conexión con base de datos” indicamos “Nueva Conexión de Base de Datos…” y se despliega la ventana “New Connection Wizard”. En este apartado indicamos “MySQL (Connector/J driver)” y clic en siguiente. (Img. 5)

    Pantalla siguiente “Customize Connection” rellenamos como indica la imagen, “Base de Datos: proyecto” “Nombre de Usuario: root” “Contraseña:“ la que hayamos establecido al crear la instancia de MySQL. Hacemos clic en “Test Connection” y si todo ha ido bien el mensaje será “Connection Succeeded”. Clic en “Siguiente” y a la pantalla siguiente “Terminar”. (Img. 6)

    Todo este proceso nos crea el archivo “hibernate.cfg” la cual iremos modificando según las necesidades.

    Por último hacemos una pequeña edición al “hibernate.cfg” que nos agrega dos líneas de código más. Quedando como se muestra en la imagen. Esto lo hacemos dentro de “Propiedades varias” y clic en “Agregar”. (Img. 7)

    Creando la clase HibernateUtil.java.

    Esta clase es la que nos crea sesiones a la nuestra fuente de datos, en este caso MySQL. Para esto utiliza el “hibernate.cfg” que creamos con anterioridad.

    Pasos: Hacemos clic derecho sobre “Paquetes de fuentes – Nuevo – Otros”. Dentro de categorías seleccionamos “Hibernar”, en “Tipos de Archivos” indicamos “HibernateUtil.java” y clic en “Siguiente” (Img. 8).

    Siguiente paso configuramos “Nombre y Ubicación”, “Nombre de Clase: HibernateUtil”, “Paquete: util” que creamos anteriormente (Img. 9).

    Clic en “Terminar”, nos abre la clase con los códigos prestablecidos, no hay nada para modificar: ej.


    Código Java
    package util;

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

    /**
    * Hibernate Utility class with a convenient method to get Session Factory object.
    *
    * @author Ariel
    */

    public class HibernateUtil {

    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;
    }
    }


  • 7 comentarios :

    1. Hola! gran tutorial! Hay un problema con bibliotecas deprecadas como AnnotationConfiguration y buildSessionFactory, quizá mi versión de Netbeans/ Hibernate está más actualizada, he cambiado algunas líneas pero no estoy seguro que no esté perjudicando otras partes del código, podrías subir el código actualizado para chequear? Saludos y gracias!

      ResponderEliminar
      Respuestas
      1. Que tal amigo, yo trabajo también con la última versión de Netbeans/Hibernate utilizando la misma codificación sin problema alguno, quizás la fuente del problema sea otra, saludos.

        Eliminar
    2. Gracias, lo revisaré! Otra pregunta sobre Hibernate, no he entendido bien si la tablas se crean solas o hay que hacer alguna clase de mapeo?

      ResponderEliminar
      Respuestas
      1. Que tal, en este proyecto utilizamos anotaciones (Clases persistentes) por tanto solo se requiere crear la base de datos y realizar la conexión con el hibernate; con la propiedad “update” activada del hibernate.cfg se crean las tabla y las relaciones utilizando como plantilla las clases persistentes. Por tanto si hay cambios en las clases persistentes se pueden eliminar las tablas de la base de datos y recrearlas fácilmente. Espero te hay sido útil, saludos.

        Eliminar
    3. que tal amigo que bonito tutorial, solo una pregunta que version de hibernet usas porque tengo problemas con el annotationconfiguration
      sessionFactory = new AnnotationConfiguration() estoy usando la version que trae el netbeans 8.1

      ResponderEliminar
      Respuestas
      1. Que tal, estoy usando el integrado para el NetBeans 7.5., el HibernateUtil no tendría que tener problemas, podrías verificar las importaciones o algún error con el proyecto. Espero te ayude, saludos.

        Eliminar
    4. //Hola a todos: Para versiones de Hibernate mayores a 4.3 como las que están en el Netbeans 8 y 8.1
      //donde ya no corren las librerías AnnotationConfiguration y buildSessionFactory, el HibernateUtil //debería quedar así:

      package util;

      import org.hibernate.cfg.Configuration;
      import org.hibernate.SessionFactory;
      import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
      import org.hibernate.service.ServiceRegistry;

      public class HibernateUtil {

      private static SessionFactory sessionFactory;
      private static ServiceRegistry serviceRegistry;

      public static SessionFactory createSessionFactory() {
      Configuration configuration = new Configuration();
      configuration.configure();
      serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
      configuration.getProperties()).build();
      sessionFactory = configuration.buildSessionFactory(serviceRegistry);
      return sessionFactory;
      }
      }

      //Saludos!

      ResponderEliminar