Level 1 Flashcards

1
Q

¿ Qué es un ORM ?

A

ORM significa Object - Relational Mapping. Es una técnica de programación para automatizar la persistencia de objetos en una base de datos relacional

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿ En qué consiste un ORM ?

A

Un ORM consta de 4 elementos:

  1. Un API que realiza operaciones básicas en la DB (CRUD - Create, Read, Update and Delete)
  2. Un API para expresar consultas que conciernen a las clases
  3. Facilita la especificación de metadatos
  4. Facilita la optimización (dirty checking, lazy associations fetching)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Cuáles son los niveles de ORM?

A

Los niveles son:
Estrictamente relacional (stored procedure)
Mapeo ligero de objetos (JDBC)
Mapeo medio de objetos
Mapeo completo de objetos (composición, herencia, polimorfismo, persistencia por accesibilidad)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿ Qué es Hibernate ?

A

Es un framework de persistencia en Java que implementa un ORM. Es decir, permite mapear objetos en Java a registros en tablas de una DB relacional. Utiliza archivos de configuración XML.

Su principal propósito es delegar las tareas de persistencia al framework y aligerar el desarrollo de software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Porqué se requieren herramientas como Hibernate?

A

La principal ventaja es que libera a los desarrolladores de lidiar con SQL

ORM proporciona las siguientes ventajas:
1. Mejora la productividad
API de alto nivel, orientada a objetos
Reduce la cantidad de código a escribir
No se requiere escribir SQL
2. Mejora el rendimiento
Caché sofisticado
Carga temprana o diferida (lazy / eager)
3. Menos código al qué dar mantenimiento
4. Portabilidad (genera SQL específico para el motor de base de datos en cuestión)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿ Qué simplifica Hibernate ?

A
  1. Guardado y Consulta de Objetos de Dominio
  2. Centraliza la lógica antes de guardar y después de consultar un objeto
  3. Relaciona objetos entre tablas (*)
  4. Creación de schema a partir del modelo de datos.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Porqué se necesita el archivo XML de mapeo?

A
  1. Porque en él se especifica el mapeo entre Clase - Tabla
  2. Permite especificar la columna que corresponde la llave primaria, así como la forma en que se generan sus valores
  3. Se especifica el mapeo entre las propiedades del objeto y las columnas) de la tabla
  4. Se especifican los mapeos con otras clases / tablas (relaciones uno a muchos, muchos a muchos)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Cuáles son los métodos más comunes para configurar Hibernate?

A

Configuración programática (en código)

Archivo XML de configuración (hibernate.cfg.xml)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Cuáles son las etiquetas más importantes del archivo hibernate.cfg.xml?

A

Las etiquetas “property” donde se configuran los datos de conexión a la DB (driver, usuario / pwd de usuario, URL, puerto, dialecto)

Si hay pool de conexión y el tamaño de éste

Las etiquetas “mapping” donde se configuran los archivos XML de cada tabla / clase

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Cuáles son las interfaces (java) básicas de Hibernate?

A
  1. Session
  2. SessionFactory
  3. Configuration
  4. Transaction
  5. Query and Criteria
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué rol juega la interfaz “Session” en Hibernate?

A

Esta es la interfaz principal que utiliza un aplicación que integra Hibernate.

Consta de un solo hilo y representa un objeto de corta vida que se comunica con la aplicación y la base de datos. Permite crear objetos de consulta para recuperar objetos persistentes.

Session session = sessionFactory.openSession();

Su rol es:

  • Encapsular una conexión JDBC
  • Servir de fábrica de transacciones
  • Contener el caché de objetos persistentes
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué rol juega la interfaz “SessionFactory” en Hibernate?

A

La aplicación obtiene una instancia de sesión a DB mediante un SessionFactory. Usualmente existe sólo una fábrica de sesiones en la aplicación.

El caché de la fábrica, construye sentencias SQL y otros metadatos que Hibernate utiliza en tiempo de ejecución. También mantiene datos en caché.

SessionFactory sessionFactory = configuration.buildSessionFactory();

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Cuál es el flujo de comunicación general de Hibernate con el RDBMS?

A

El flujo es:

  1. Carga el archivo de configuración de Hibernate y crea un objeto de configuración. Éste a su vez, carga los archivos XML con los mapeos de las tablas
  2. Crea la fábrica de sesiones (SessionFctory) a partir del objeto de configuración.
  3. Genera consultas HQL
  4. Ejecuta consultas para obtener la lista de los objetos Java
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué es HQL?

A

Significa Hibernate Query Language y es una extensión de SQL orientada a objetos

Ofrece un lenguaje que incorpora un mecanismo potente y flexible para consultar, almacenar, actualizar y recuperar objetos de una DB.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Cómo se mapean los objetos Java a registros en la DB?

A

Primero necesitamos un objeto java POJO (beans with setter and getter).
Luego escribimos el archivo hbm.xml, donde se especifica la tabla que corresponde a la clase del objeto y se establecen las relaciones entre propiedades del objeto y columnas de la tabla.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Cuál es la diferencia entre load() y get() ?

A

tabla