0% encontró este documento útil (0 votos)
4 vistas22 páginas

06 - Hibernate

La programación orientada a objetos (POO) es un paradigma que utiliza objetos para diseñar aplicaciones, basado en técnicas como herencia y encapsulamiento. JDBC permite la conexión a bases de datos, pero su complejidad puede ser mitigada mediante el uso de un motor de persistencia como Hibernate, que facilita la traducción entre objetos y registros. Hibernate permite la persistencia de objetos Java en bases de datos relacionales y utiliza HQL para realizar consultas de manera más eficiente.

Cargado por

Liseth Arenas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas22 páginas

06 - Hibernate

La programación orientada a objetos (POO) es un paradigma que utiliza objetos para diseñar aplicaciones, basado en técnicas como herencia y encapsulamiento. JDBC permite la conexión a bases de datos, pero su complejidad puede ser mitigada mediante el uso de un motor de persistencia como Hibernate, que facilita la traducción entre objetos y registros. Hibernate permite la persistencia de objetos Java en bases de datos relacionales y utiliza HQL para realizar consultas de manera más eficiente.

Cargado por

Liseth Arenas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 22

PROGRAMACIÓN ORIENTADA A

OBJETOS.
 La programación orientada a objetos o POO (OOP
según sus siglas en inglés) es un paradigma de
programación que usa objetos y sus interacciones, para
diseñar aplicaciones y programas informáticos. Está
basado en varias técnicas, incluyendo herencia,
abstracción, polimorfismo y encapsulamiento.
 Su uso se popularizó a principios de la década de los
años 1990. En la actualidad, existe variedad de
lenguajes de programación que soportan la
orientación a objetos.
PROGRAMACIÓN ORIENTADA A
OBJETOS.
 Los objetos son entidades que combinan estado
(atributo), comportamiento (método) e identidad:
 El estado está compuesto de datos, será uno o varios
atributos a los que se habrán asignado unos valores
concretos (datos).
 El comportamiento está definido por los procedimientos
o métodos con que puede operar dicho objeto, es decir,
qué operaciones se pueden realizar con él.
 La identidad es una propiedad de un objeto que lo
diferencia del resto, dicho con otras palabras, es su
identificador.
MODELO OBJETUAL
QUE ES UNA RELACIÓN
 Una relación es una asociación o relación matemática
entre varias entidades. Se representan en el diagrama
E-R mediante flechas y rombos. Cada entidad
interviene en una relación con una determinada
cardinalidad (número de instancias o elementos de
una entidad que pueden asociarse a un elemento de la
otra entidad relacionada) se representa mediante una
pareja de datos, en minúsculas, de la forma
(cardinalidad mínima, cardinalidad máxima), asociada
a cada uno de las entidades que intervienen en la
relación.
MODELO RELACIONAL
JDBC.
 Un ejemplo para lograr realizar una aplicación
utilizando base de datos es utilizar JDBC (Java
DataBase Connectivity)

 Usar JDBC es complejo y muy dependiente de la


estructura de los datos.
 Sería más natural y mucho más sencillo trabajar
directamente con objetos
MOTOR DE PERSISTENCIA.
 La mejor opción entonces es utilizar un motor de
persistencia, que es el componente software encargado
de traducir entre objetos y registros.
 Un motor de persistencia de código abierto es Hibernate.

 Guardar un objeto session.save(miObjeto)


 Borrar un objeto session.delete(miObjeto)

 Se entiende por persistencia como la acción de preservar


la información de un objeto de forma permanente
(guardar), pero a su vez también se refiere a poder
recuperar la información del mismo (leer) para que pueda
ser nuevamente utilizada.
HIBERNATE
 Hibernate es un entorno de trabajo que tiene como
objetivo facilitar la persistencia de objetos Java en
bases de datos relacionales y al mismo tiempo la
consulta de estas bases de datos para obtener objetos.
POR QUE NECESITAMOS
HIBERNATE ?
COMO SE MANIFIESTA LA BRECHA
ENTRE AMBOS MODELOS I?
 Si estamos utilizando objetos en nuestra aplicación y
en algún momento queremos que sean persistentes,
normalmente abriremos una conexión JDBC,
crearemos una sentencia SQL y copiaremos todos los
valores de las propiedades sobre una
PreparedStatement o en la cadena SQL que estemos
construyendo.
 Esto podría ser fácil para un objeto de pequeño
tamaño pero consideremos esto para un objeto
con muchas propiedades.
COMO SE MANIFIESTA LA BRECHA
ENTRE AMBOS MODELOS II?
 ¿Qué pasa con las asociaciones? ¿Y si el objeto contiene
a su vez a otros objetos? ¿Los almacenaremos también
en la Base de Datos? ¿Automáticamente?
¿Manualmente? ¿Qué haremos con las claves ajenas?

 Como se puede ver, la brecha existente entre los


paradigmas de objeto y relacional se vuelve mucho
mayor si disponemos de modelos con objetos
“grandes”
ORM (Object Relational Mapping)
 Básicamente, una ORM intenta hacer todas estas
tareas pesadas por nosotros.
 Con una buena ORM, sólo tendremos que definir la
forma en la que establecemos la correspondencia entre
las clases y las tablas una sola vez (indicando que
propiedad se corresponde con que columna, que clase
con que tabla, etc.).
Hibernate Query Language HQL
 Este lenguaje es similar a SQL y es utilizado para
obtener objetos de la base de datos según las
condiciones especificadas en el HQL.
 El uso de HQL nos permite usar un lenguaje
intermedio que según la base de datos que usemos y el
dialecto que especifiquemos será traducido al SQL
dependiente de cada base de datos de forma
automática y transparente
ARQUITECTURA DE HIBERNATE
CLASE JAVA
FICHERO DE MAPEO HIBERNATE.

 Este fichero debe guardarse en algún sitio del classpath, junto al fichero
.java.

 En la etiqueta <class...> se indica el nombre de la clase y opcionalmente


podría indicarse con la propiedad table="EVENTO" el nombre de la
tabla en base de datos. Al no indicarlo, se usará por defecto el mismo
nombre de la clase "Event".
FICHERO DE MAPEO HIBERNATE
 La etiqueta <id...> indica la clave de la clase. Con el atributo name="id"
se indica qué propiedad de la clase es la clave y con el atributo
column="EVENT_ID" se indica el nombre de la columna para la clave.
 La etiqueta <generator...> con el atributo class="native" le indica a
hibernate que debe usar el método que proporcione la base de datos
para la gesión de ids. En el caso de MySQL, será "auto-increment".
 Luego van el resto de atributos de la clase, etiquetados en etiquetas xml
<property...>. Para cada uno se pone:
 name="..." con el nombre del atributo de la clase java.
 type="..." con el tipo de dato que es (String, Date, etc). Cuando entre el
tipo java y el de base de datos hay una relación clara, no se suele poner
nada. El caso de Date es especial, ya que en java y las bases de datos
pueden distinguir los tipos date (fecha), time (hora) y timestamp (fecha
y hora), por lo que suele ser conveniente indicar cual queremos
exactamente.
 column="..." el nombre de la columna deseado en la base de dato.
FICHERO DE CONFIGURACIÓN
HIBERNATE. (hibernate.cfg.xml)
HibernateUtil (nos de las
conexiones con la base de datos)
EJEMPLO FINAL
.
RESUMEN DE PASOS DE
CONFIGURACIÓN
 Situar el *.jar del driver JDBC elegido y el fichero
hibernate2.jar en nuestro classpath.
 Añadir las dependencias de Hibernate (directorio (lib)) en
el classpath. (lib/README.txt contiene una lista de
librerías requeridas y opcionales).
 Elegir y configurar un pool de conexiones JDBC.
 Determinar las propiedades de Configuración en un fichero
hibernate.properties o o hibernate.cfg.xml en el classpath.
 Crear una instancia de Configuración en nuestra aplicación
y cargar los ficheros de mapeado XML utilizando
addResource() o addClass().
 Obtener una SessionFactory a partir de Configuration
llamando a BuildSessionFactory().

También podría gustarte