Mapeo Objeto-Relacional con Hibernate y Patrones de Diseño

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 7,07 KB

Mapeo Objeto Relacional

Utiliza:

  • BD relacional
  • Motor de Persistencia
  • Programación Orientada a Objetos

Mapea cada tabla una a una.

Hibernate

Mapea mediante ficheros XML.

Mapea los objetos Java normales (POJOs - Plain Old Java Objects). Debe mantener una conversación con el motor de Hibernate mediante el objeto “sesión” (clase Session).

La clase “Session” ofrece los siguientes métodos:

  • Save
  • Create
  • CreateQuery
  • BeginTransaction
  • Close

Interfaces de Hibernate

SessionFactory: Permite obtener instancias de Session (se comparte entre muchos hilos). Normalmente se utiliza una única SessionFactory.

Configuration: (org.hibernate.cfg.Configuration) Se utiliza para configurar Hibernate. Utiliza una instancia de Configuration para especificar la ubicación de los documentos de mapeo y propiedades de Hibernate, y luego crea la SessionFactory.

Query: (org.hibernate.Query) Permite realizar consultas a la base de datos y controla dichas consultas. Escritas en HQL.

Transaction: (org.hibernate.Transaction) Nos permite asegurar cualquier error que ocurra entre el inicio y el final de la transacción.

Instalación y Configuración de Hibernate

Instalación

  1. JDK.
  2. Instalación del plugin de Hibernate (solo Hibernate Tools).
  3. Driver MySQL.
  4. Creamos un Proyecto
  5. Agregamos el driver MySQL.

Configuración

  1. Driver MySQL.
  2. Creación del fichero de configuración (hibernate.cfg.xml). Necesario para realizar la conexión a la BD.
  3. Conexión URL (ruta de conexión a la BD).
  4. Creación del fichero XML Hibernate Console Configuration (Crear la conexión).
  5. Creación del fichero XML Hibernate Reverse Engineering (reveng.xml), (Encargado de crear las clases de nuestras tablas MySQL).
  6. Generar las clases de nuestra BD (Hibernate Code Generation Configurations).
  7. Generar la clase Singleton. Restringe la creación de objetos, crea una instancia del objeto si no existe ninguna. Accede a SessionFactory para obtener el objeto sesión.
  8. Clase main (Para ejecutar nuestro programa).
  9. Modificar el fichero hibernate.cfg.xml.

Las clases Empleados.java y Departamentos.java se les llama clases persistentes.

Configuration().configure() carga el fichero hibernate.cfg.xml.

El método beginTransaction() marca el comienzo, commit() valida una transacción, rollback() deshace la transacción.

JFRAME

Se añade la clase SessionFactoryUtil.java. Desde la clase Main.java se crea una instancia a la clase Pantalla.java que llama al método iniciar() y la pinta.

Modelo Vista Controlador (MVC)

Existen 3 grupos de patrones:

  • Creacionales: Giran en torno a la creación de Objetos.
  • Estructurales: Se enfocan en la estructura de clases y objetos que las componen.
  • De Comportamiento: Definen el modo en que las clases y objetos son relacionados, el comportamiento e interacción entre ellos.

Modelo Vista Controlador (MVC)

Es un patrón estructural que permite separar la información y lógica de negocio de la parte visual de la aplicación y la lógica que gestiona las relaciones y eventos del sistema.

  • Modelo: Representa la información y los datos procesados por el sistema, gestionando la forma como se accede a estos y la lógica de negocio de la aplicación.
  • Controlador: Es el puente de interacción entre el Modelo y la Vista, define la forma como se relacionan los componentes de la aplicación.
  • Vista: Representación del modelo mediante una interfaz gráfica de usuario, es la forma como el usuario interactúa con el sistema, permitiendo la ejecución de eventos e ingreso de información que serán procesados por el Modelo.

Observer

Es un patrón que actualiza el estado de un objeto dependiendo del estado de un objeto principal. Cuando el objeto principal cambia, sus objetos dependientes se actualizan.

ValueObject (VO)

Consiste básicamente en la agrupación de datos dentro de un objeto. Estos datos representan los campos de una tabla o entidad de la BD y facilitan su mantenimiento y transporte dentro del sistema.

DataAccessObject (DAO)

Facilita y estructura el acceso a la información de una Base de Datos, separando la persistencia de objetos de la lógica de acceso a datos, brindando mayor flexibilidad ya que, por ejemplo, al momento de hacer un cambio en la lógica de negocio, esto sería transparente para la lógica de acceso a la información.

Singleton

Permite la creación de una única instancia de clase permitiendo que sea global para toda la aplicación.

El Modelo

Como se mencionó, en el modelo tenemos la lógica de negocio.

Clase Lógica:

Esta clase permite realizar las operaciones asociadas a la lógica de negocio como tal. Desde ella realizamos las validaciones y llamados a las operaciones CRUD del sistema.

Clase Conexión:

En esta clase tenemos la cadena de conexión con la que trabajará nuestra aplicación. En ella se define la base de datos, el usuario, password y driver de conexión.

Clase PersonaVO

(Representamos las tablas)

Clase PersonaDAO

(Centralizamos el acceso a la base de datos)

La Vista

Se define la interfaz gráfica de usuario.

Clase PersonaVO

(Representamos las tablas)

Clase PersonaDAO

(Centralizamos el acceso a la base de datos)

El Controlador

Esta parte del patrón es la que define la lógica de administración del sistema, establece la conexión entre la vista y el modelo.

Clase Principal:

Contiene el método main el cual ejecuta la apk, llama al método iniciar() donde se crearán las instancias de la clase lógica estableciendo con el la clase controlador.

Clase Coordinador:

Es el puente entre el modelo y las vistas.

Objetos Relacionales Oracle

Definición de tipos:

Contiene las definiciones de tipos de objetos.

TDireccion:

Es un objeto que va asociado a las empresas.

Nested:

Para poder crear una tabla anidada con el mismo nombre de campo de la T.principal y con los elementos del tipo especificado en este.

Entradas relacionadas: