SlideShare una empresa de Scribd logo
1 de 34
Persistencia de Datos
Ing. José Luis BugarinIng. José Luis Bugarin
jbugarin@consultorjava.comjbugarin@consultorjava.com
1
Objetivos
Al final de la sesión usted debe ser capaz de:
Conocer sobre la capa de acceso a datos
en aplicaciones JAVA.
Conocer sobre el Framework Hibernate
para realizar transacciones de base de
datos.
2
Introducción
• La persistencia es una de los conceptos fundamentales en el desarrollo de
Aplicaciones ya que si un sistema de información no es capaz de preservar
sus datos cuando se apaga, probablemente será muy poco útil.
• Conforme los sistemas se volvían más complejos, fueron siendo necesarios
mayores niveles de abstracción, lo que llevó a plantear una clara
separación arquitectónica entre el acceso a los datos y el procesamiento de
los mismos.
• Actualmente, la realidad presenta sistemas de información distribuidos,
interoperables, con fuentes de datos heterogéneas y con capacidades de
almacenamiento masivo, donde sin lugar a dudas, la orientación a objetos
se ha convertido en el paradigma dominante para el desarrollo de este tipo
de sistemas.
3
Introducción
• ¿Son las BBDD relacionales la mejor
elección para la persistencia en
aplicaciones orientadas a objetos?
• La respuesta a esta pregunta es complicada y durante los últimos
15 años los desarrolladores han hablado de lo que se conoce como
paradigm mismatch, y que es el resultado de las diferencias
existentes entre el paradigma de orientación a objetos y el
paradigma relacional (Ej. los conceptos básicos de identidad, clase,
herencia y polimorfismo no son soportados de forma nativa por una
base de datos relacional).
4
Definición de Persistencia
• Es la capacidad que tiene un objeto de
“perdurar” fuera del proceso que lo creo.
El estado de un objeto puede ser
almacenado en disco y recuperado en un
futuro.
5
ALTERNATIVAS PARA LA
CAPA DE PERSISTENCIA
• SQL / ODBC
– Mecanismo mas conocido por los
programadores.
– Se usa en conjunto con el Patrón DAO(Data
Acces Object).
– Es un api orientado a sentencias.
– Para manipular los datos de una tabla estos
tienen que ser especificados al menos 3
veces (insert, update y select).
6
ALTERNATIVAS PARA LA
CAPA DE PERSISTENCIA
• Serialización
– Capacidad para escribir objetos a través de
una red de comunicación en un flujo de bytes
que podría persistir a un fichero o a una Base
de Datos.
7
ALTERNATIVAS PARA LA
CAPA DE PERSISTENCIA
• Sistemas de BD Orientadas a Objetos
– La idea es almacenar los objetos de nuestra aplicación en
BBDD sin tener que “retorcer” el modelo de objetos.
– Las BBDD OO se basan en el modelo jerárquico anterior al
modelo relacional y ofrecen una integración sencilla dentro del
entorno de una aplicación OO (sin un lenguaje intermedio como
es SQL).
– La tecnología BBDD OO no ha sido ampliamente adoptada en la
industria y no parece que esto vaya a ocurrir en un futuro
cercano.
8
ALTERNATIVAS PARA LA
CAPA DE PERSISTENCIA
• Persistencia XML
– Es una variación de la Serialización (Facilita
en acceso a los datos pero al no ser mas que
un fichero de texto no ofrece ninguna
capacidad añadida para la gestión de datos)
• Procedimientos almacenados en BBDD
– se delega la persistencia a nivel de BBDD (se
desplazan algunos trabajos fuera de la capa
de negocio)
9
Framework de Persistencia -
Definición
• Conjunto cohesivo de clases que colaboran para prestar
servicios a la parte fundamental e invariable de un
subsistema lógico.
• Contiene clases concretas y, especialmente, abstractas
que definen las interfaces que conformarán las
interacciones en que participan y otras invariantes.
• En términos generales se requiere que el usuario defina
subclases para utilizar, adaptar, y ampliar los servicios
que ofrecen las clases del framework.
10
Framework de Persistencia -
Requisitos
• Guardar y recuperar objetos en / desde un almacenamiento
persistente.
• - Manejar transacciones del tipo commit y rollback.
• - Diseño que de soporte a:
– Extensión para permitir múltiples soportes de almacenamiento:
• BD Relacionales.
• Ficheros
• Etc.
– Facilidad de uso.
– Ser muy trasparente.
– Reutilización y Extensibilidad
11
Grafica de Interpretación
12
HIBERNATE
• Hibernate, es una herramienta para el mapeo
objeto / relacional de alto rendimiento libre
(licenciado bajo GNU Public License).
• Hibernate va a soportar características de la
orientación a Objetos tales como asociaciones,
herencia, polimorfismo, composición,
colecciones, etc.
• Hibernate va a permitir expresar queries en una
extensión de SQL propia y portable (HQL) así
como en SQL nativo.
13
HIBERNATE
• Hibernate implementa el mapeo
objeto/relacional y los interfaces para la
gestión de persistencia definidos dentro
de JPA a través los módulos Hibernate
Annotations e Hibernate EntityManager,
los cuales se encuentran alrededor del
maduro y poderoso modulo Hibernate
Core.
14
HIBERNATE
• Los módulos de Hibernate pueden ser
almacenados y combinados como se
desee. Es posible utilizar Hibernate como
proveedor de persistencia en cualquier
entorno Java y esta completamente
certificado por Sun.
15
OBJETIVO DE HIBERNATE
• El objetivo de Hibernate es liberar al
desarrollador del 95% de las tareas de
programación comunes relacionadas con
la persistencia de datos en comparación
con una codificación manual con SQL y el
API JDBC.
• Hibernate 3 requiere la JDK 1.3.1 o
superior (1.4.2 y 1.5.0 recomendado)
16
ELEMENTOS DE HIBERNATE
17
ESTANDARES SOPORTADOS
• Java Management Extension (JMX) 1.2
• Java Transaction API (JTA) 1.0.1B
• JDBC 3.0
• Java Naming and Directory Interface
(JNDI) 1.2.1
• EJB 3.0
18
Hibernate Core
• Especifica la sintaxis y semántica para el mapeo de
objeto / relacional a través de ficheros XML nativos de
Hibernate y este modulo funciona en cualquier entorno
de JDK.
• Este modulo va a proporcionar la persistencia de forma
transparente, con el único requisito de que las clases
persistentes tienen que tener un constructor sin
argumentos (esto se debe a que Hibernate utiliza
reflection).
• Hibernate Core genera sentencias SQL, recupera los
resultados vía JDBC y convierte la aplicación en
portable para todas las BBDD.
19
Hibernate Core
• Hibernate Core ofrece un amplio conjunto
de opciones de consulta. Va a permitir
escribir sentencias SQL estándar o
sentencias HQL (Hibernate Query
Language)
• Hibernate Core va a optimizar la carga
masiva de objetos con varias opciones de
fetch y cache.
20
HIBERNATE ANNOTATIONS
• Hibernate, como cualquier otra herramienta para el mapeo objeto /
relacional requiere un conjunto de “metadatos” que van a gobernar
la transformación de una representación a otra (y viceversa).
• De forma opcional, con Hibernate 3.2 se puede utilizar para el
mapeo objeto / relacional el mecanismo de anotaciones
incorporado en la JDK 5.0.
• Hibernate Annotations incluye:
– - Las anotaciones estándar EJB 3.0 (JSR 220) para el mapeo
objeto / relacional.
– - Una extensión de anotaciones especificas de Hibernate para la
optimización de rendimiento y mapeos especiales.
21
Hibernate Entity Manager
• Es un pequeño wrapper alrededor de Hibernate Core que
proporciona compatibilidad JPA.
• El proveedor de persistencia Hibernate es el proveedor de
persistencia por defecto para el servidor de aplicaciones JBoss.
• Hibernate Entity Manager implementa:
– - Estándar para la gestión de persistencia Java (JPA)
– - Lenguaje de consultas estándar.
– - Reglas estándar para el ciclo de vida de los objetos
persistentes
– - Estándar para la configuración y empaquetado.
22
Hibernate Search
• Proporciona un poderoso motor de búsqueda de
texto para el modelo de dominio a través de una
configuración transparente y un API común.
• Será necesario guardar y actualizar un índice y
mantener una correspondencia entre la
estructura de índices y el modelo de dominio.
• Hibernate Search utiliza internamente Apache
Lucene y proporciona la capacidad de repliegue
del API nativa de Lucene.
23
Hibernate Tools
• Nuevo conjunto de herramientas para
Hibernate 3 implementadas como un
plugin de Eclipse (también en netbeans)
junto con una tarea Ant unificada para la
integración dentro del ciclo de
construcción. Hibernate Tools es el
componente principal de JBoss Tools que
forman parte del JBoss Developer Studio.
24
Características de Hibernate
Tools
• Editor de mapeo: Un editor para el mapeo de
ficheros XML Hibernate con soporte para auto-
completado y resaltado de sintaxis.
• Consola: La perspectiva de consola de
Hibernate va a permitir configurar conexiones
con BBDD, va a proporcionar la visualización de
las clases persistentes y sus relaciones y va a
permitir ejecutar consultas HQL
interactivamente contra la BBDD y navegar por
los resultados de la consulta.
25
Hibernate Tools
• Herramienta de Ingeniería Inversa de
BBDD: Esta herramienta es capaz a partir
de un esquema de BBDD de generar
automáticamente y en cuestión de
segundos las clases del modelo de
dominio, los ficheros xml de mapeo de
Hibernate, las clases de Entidad
Anotadas, documentación HTML
26
Hibernate Tools
• Asistentes: Se proporcionan varios
asistentes entre los que se incluyen uno
para generar el fichero de configuración
de Hibernate (hibernate.cfg.xml) y otro
para configurar la consola de Hibernate.
• Tarea Ant: Va a permitir ejecutar la
generación del esquema, la generación
de mapeos, la generación de código Java
como parte del ciclo de construcción.
27
ARQUITECTURAS DE
SOFTWARE
• El rol principal que podemos identificar
cuando se tratan de estos temas es el
ARQUITECTO DE SOFTWARE.
• Descripción General:
– tiene la responsabilidad global de dirigir las
principales decisiones técnicas, expresadas como la
arquitectura de software.
– incluye la identificación y la documentación de los
aspectos arquitectónicamente significativos del
sistema, que incluye las “vistas” de requisitos, diseño,
implementación y despliegue del sistema. 28
ARQUITECTO DE SOFTWARE
• Tiende a ser generalista en lugar de
especialista, conoce muchas tecnologías
a un alto nivel en lugar de pocas
tecnologías a nivel de detalle.
• Toma decisiones técnicas mas amplias y,
por lo tanto, un amplio conocimiento y
experiencia, así como habilidades de
comunicación y liderazgo, son esenciales.
29
DIAGRAMAS DE
ARQUITECTURA
30
DIAGRAMAS DE
ARQUITECTURA
31
FLUJOS DE
TRANSACCIONES DE
ARQUITECTURA
32
DIAGRAMAS DE
ARQUITECTURA
• ¿Qué podemos observar?
33
DIAGRAMAS DE
ARQUITECTURA
• Componentes de negocio:
34

Más contenido relacionado

La actualidad más candente

Arquitectura computadoras
Arquitectura computadorasArquitectura computadoras
Arquitectura computadorasAbril Castro
 
Sistema de-maquina-virtual
Sistema de-maquina-virtualSistema de-maquina-virtual
Sistema de-maquina-virtualkerlly villon
 
Algoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativosAlgoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativosFernando Morales
 
Servidores, tipos de servidores
Servidores, tipos de servidoresServidores, tipos de servidores
Servidores, tipos de servidoresEnya Loboguerrero
 
Informe de teamviewer
Informe de teamviewerInforme de teamviewer
Informe de teamviewerPatty Vm
 
PROYECTO final de curso - Listas dobles
PROYECTO final de curso - Listas doblesPROYECTO final de curso - Listas dobles
PROYECTO final de curso - Listas doblesMaiky Kobatakane
 
Estándares para el diseño de interfaz
Estándares para el diseño de interfazEstándares para el diseño de interfaz
Estándares para el diseño de interfazJose Luis Dorao
 
ELEMENTOS DE UNA RED DE COMPUTADORAS
ELEMENTOS DE UNA RED DE COMPUTADORAS ELEMENTOS DE UNA RED DE COMPUTADORAS
ELEMENTOS DE UNA RED DE COMPUTADORAS Alejandra Altamirano
 
Arquitectura de un pc ensayos
Arquitectura de un pc ensayosArquitectura de un pc ensayos
Arquitectura de un pc ensayosAngelica Escobar
 
Otras relaciones y modelos bases de datos
Otras relaciones y modelos bases de datosOtras relaciones y modelos bases de datos
Otras relaciones y modelos bases de datosEmer Gio
 
Arquitectura Del Computador
Arquitectura Del ComputadorArquitectura Del Computador
Arquitectura Del Computadorivan
 
sql server
sql serversql server
sql serverPcentro
 
Instalacion de cassandra
Instalacion de cassandraInstalacion de cassandra
Instalacion de cassandraLuis Alvarado
 
Elementos básicos de modelo entidad relación
Elementos básicos de modelo entidad relaciónElementos básicos de modelo entidad relación
Elementos básicos de modelo entidad relaciónCam Bandini
 
Historia de la tecnologia de base de datos
Historia de la tecnologia de base de datosHistoria de la tecnologia de base de datos
Historia de la tecnologia de base de datosralbarracin
 

La actualidad más candente (20)

Arquitectura computadoras
Arquitectura computadorasArquitectura computadoras
Arquitectura computadoras
 
Sistema de-maquina-virtual
Sistema de-maquina-virtualSistema de-maquina-virtual
Sistema de-maquina-virtual
 
Algoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativosAlgoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativos
 
Servidores, tipos de servidores
Servidores, tipos de servidoresServidores, tipos de servidores
Servidores, tipos de servidores
 
Informe de teamviewer
Informe de teamviewerInforme de teamviewer
Informe de teamviewer
 
PROYECTO final de curso - Listas dobles
PROYECTO final de curso - Listas doblesPROYECTO final de curso - Listas dobles
PROYECTO final de curso - Listas dobles
 
Estándares para el diseño de interfaz
Estándares para el diseño de interfazEstándares para el diseño de interfaz
Estándares para el diseño de interfaz
 
ELEMENTOS DE UNA RED DE COMPUTADORAS
ELEMENTOS DE UNA RED DE COMPUTADORAS ELEMENTOS DE UNA RED DE COMPUTADORAS
ELEMENTOS DE UNA RED DE COMPUTADORAS
 
SERVICIOS DEL SISTEMA OPERATIVO
SERVICIOS DEL SISTEMA OPERATIVOSERVICIOS DEL SISTEMA OPERATIVO
SERVICIOS DEL SISTEMA OPERATIVO
 
Arquitectura de un pc ensayos
Arquitectura de un pc ensayosArquitectura de un pc ensayos
Arquitectura de un pc ensayos
 
Otras relaciones y modelos bases de datos
Otras relaciones y modelos bases de datosOtras relaciones y modelos bases de datos
Otras relaciones y modelos bases de datos
 
Arquitectura Del Computador
Arquitectura Del ComputadorArquitectura Del Computador
Arquitectura Del Computador
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
1. Modelo de Datos
1. Modelo de Datos1. Modelo de Datos
1. Modelo de Datos
 
sql server
sql serversql server
sql server
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Instalacion de cassandra
Instalacion de cassandraInstalacion de cassandra
Instalacion de cassandra
 
Elementos básicos de modelo entidad relación
Elementos básicos de modelo entidad relaciónElementos básicos de modelo entidad relación
Elementos básicos de modelo entidad relación
 
Historia de la tecnologia de base de datos
Historia de la tecnologia de base de datosHistoria de la tecnologia de base de datos
Historia de la tecnologia de base de datos
 
Ejercicios del 1 al 9
Ejercicios del 1 al 9Ejercicios del 1 al 9
Ejercicios del 1 al 9
 

Similar a Persistencia de Datos con Hibernate (20)

Manual hibernate
Manual hibernateManual hibernate
Manual hibernate
 
Tema2 bbdd
Tema2 bbddTema2 bbdd
Tema2 bbdd
 
Gestor de base de datos
Gestor de base de datosGestor de base de datos
Gestor de base de datos
 
Hibernate 3.2 short manual
Hibernate 3.2 short manualHibernate 3.2 short manual
Hibernate 3.2 short manual
 
Gestor de base de datos
Gestor de base de datosGestor de base de datos
Gestor de base de datos
 
Grupo BD
Grupo BDGrupo BD
Grupo BD
 
Base de datos
Base de datos Base de datos
Base de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
OpenProdoc Visión General
OpenProdoc Visión GeneralOpenProdoc Visión General
OpenProdoc Visión General
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Sesion03 apuntes
Sesion03 apuntesSesion03 apuntes
Sesion03 apuntes
 
Tipos de base de datos
Tipos de base de datosTipos de base de datos
Tipos de base de datos
 
GESTOR DE BASE DE DATOS
GESTOR DE BASE DE DATOSGESTOR DE BASE DE DATOS
GESTOR DE BASE DE DATOS
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Gestores
GestoresGestores
Gestores
 
Gestor de Base de Datos
Gestor de Base de DatosGestor de Base de Datos
Gestor de Base de Datos
 
Motor de persistencia nhibernate
Motor de persistencia nhibernateMotor de persistencia nhibernate
Motor de persistencia nhibernate
 
Sistema de gestor de base de datos
Sistema de gestor de base de datosSistema de gestor de base de datos
Sistema de gestor de base de datos
 
Sistemas Gestores de Base de Datos
Sistemas Gestores de Base de DatosSistemas Gestores de Base de Datos
Sistemas Gestores de Base de Datos
 
Pricipales bases de datos
Pricipales bases de datosPricipales bases de datos
Pricipales bases de datos
 

Más de Jose Luis Bugarin Peche

ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...
ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...
ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...Jose Luis Bugarin Peche
 
ILUMINATIC TECNOLOGIA | Inteligencia Artificial con Java
ILUMINATIC TECNOLOGIA | Inteligencia Artificial con JavaILUMINATIC TECNOLOGIA | Inteligencia Artificial con Java
ILUMINATIC TECNOLOGIA | Inteligencia Artificial con JavaJose Luis Bugarin Peche
 
Gestión de Rendimiento en Aplicaciones Java - APM
Gestión de Rendimiento en Aplicaciones Java - APMGestión de Rendimiento en Aplicaciones Java - APM
Gestión de Rendimiento en Aplicaciones Java - APMJose Luis Bugarin Peche
 
Arquitectura de Apis & GRPC | #JCONFPERU
Arquitectura de Apis & GRPC | #JCONFPERUArquitectura de Apis & GRPC | #JCONFPERU
Arquitectura de Apis & GRPC | #JCONFPERUJose Luis Bugarin Peche
 
Amazon ec2 | Jose Luis bugarin | Arquitecto Empresarial
Amazon ec2 | Jose Luis bugarin | Arquitecto EmpresarialAmazon ec2 | Jose Luis bugarin | Arquitecto Empresarial
Amazon ec2 | Jose Luis bugarin | Arquitecto EmpresarialJose Luis Bugarin Peche
 
Aprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis Bugarin
Aprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis BugarinAprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis Bugarin
Aprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis BugarinJose Luis Bugarin Peche
 
Transformación Digital | Enfoque para Estudiantes Universitarios
Transformación Digital | Enfoque para Estudiantes UniversitariosTransformación Digital | Enfoque para Estudiantes Universitarios
Transformación Digital | Enfoque para Estudiantes UniversitariosJose Luis Bugarin Peche
 
Comunicar la tierra con la nube jlbugarin v1.0
Comunicar la tierra con la nube jlbugarin v1.0Comunicar la tierra con la nube jlbugarin v1.0
Comunicar la tierra con la nube jlbugarin v1.0Jose Luis Bugarin Peche
 
Iluminatic facturacion electronica_referencia
Iluminatic facturacion electronica_referenciaIluminatic facturacion electronica_referencia
Iluminatic facturacion electronica_referenciaJose Luis Bugarin Peche
 
Introduccion inteligencia negocios | business intelligence
Introduccion inteligencia negocios | business intelligenceIntroduccion inteligencia negocios | business intelligence
Introduccion inteligencia negocios | business intelligenceJose Luis Bugarin Peche
 
Tecnologías de la Información y Comunicación en la Contabilidad...
Tecnologías de la Información y Comunicación en la Contabilidad...Tecnologías de la Información y Comunicación en la Contabilidad...
Tecnologías de la Información y Comunicación en la Contabilidad...Jose Luis Bugarin Peche
 

Más de Jose Luis Bugarin Peche (20)

ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...
ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...
ILUMINATIC TECNOLOGIA | 3 Tecnologías Open Source para la Transformación Tecn...
 
ILUMINATIC TECNOLOGIA | Inteligencia Artificial con Java
ILUMINATIC TECNOLOGIA | Inteligencia Artificial con JavaILUMINATIC TECNOLOGIA | Inteligencia Artificial con Java
ILUMINATIC TECNOLOGIA | Inteligencia Artificial con Java
 
Gestión de Rendimiento en Aplicaciones Java - APM
Gestión de Rendimiento en Aplicaciones Java - APMGestión de Rendimiento en Aplicaciones Java - APM
Gestión de Rendimiento en Aplicaciones Java - APM
 
Inteligencia artificial en las Empresas
Inteligencia artificial en las EmpresasInteligencia artificial en las Empresas
Inteligencia artificial en las Empresas
 
Arquitectura de Apis & GRPC | #JCONFPERU
Arquitectura de Apis & GRPC | #JCONFPERUArquitectura de Apis & GRPC | #JCONFPERU
Arquitectura de Apis & GRPC | #JCONFPERU
 
Amazon ec2 | Jose Luis bugarin | Arquitecto Empresarial
Amazon ec2 | Jose Luis bugarin | Arquitecto EmpresarialAmazon ec2 | Jose Luis bugarin | Arquitecto Empresarial
Amazon ec2 | Jose Luis bugarin | Arquitecto Empresarial
 
Aprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis Bugarin
Aprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis BugarinAprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis Bugarin
Aprendizaje Supervisado | Redes Neuronales Perceptron | Jose Luis Bugarin
 
Ecosistema Tecnología Java
Ecosistema Tecnología JavaEcosistema Tecnología Java
Ecosistema Tecnología Java
 
Transformación Digital | Enfoque para Estudiantes Universitarios
Transformación Digital | Enfoque para Estudiantes UniversitariosTransformación Digital | Enfoque para Estudiantes Universitarios
Transformación Digital | Enfoque para Estudiantes Universitarios
 
¿Que son los microservicios?
¿Que son los microservicios?¿Que son los microservicios?
¿Que son los microservicios?
 
Comunicar la tierra con la nube jlbugarin v1.0
Comunicar la tierra con la nube jlbugarin v1.0Comunicar la tierra con la nube jlbugarin v1.0
Comunicar la tierra con la nube jlbugarin v1.0
 
Sistemas Distribuidos Introduccion
Sistemas Distribuidos IntroduccionSistemas Distribuidos Introduccion
Sistemas Distribuidos Introduccion
 
Iluminatic facturacion electronica_referencia
Iluminatic facturacion electronica_referenciaIluminatic facturacion electronica_referencia
Iluminatic facturacion electronica_referencia
 
Arquitectura empresarial
Arquitectura empresarial Arquitectura empresarial
Arquitectura empresarial
 
Desarrollo empresarial con java
Desarrollo empresarial con javaDesarrollo empresarial con java
Desarrollo empresarial con java
 
Introduccion inteligencia negocios | business intelligence
Introduccion inteligencia negocios | business intelligenceIntroduccion inteligencia negocios | business intelligence
Introduccion inteligencia negocios | business intelligence
 
Servicios Web en Android
Servicios Web en AndroidServicios Web en Android
Servicios Web en Android
 
Tecnologías de la Información y Comunicación en la Contabilidad...
Tecnologías de la Información y Comunicación en la Contabilidad...Tecnologías de la Información y Comunicación en la Contabilidad...
Tecnologías de la Información y Comunicación en la Contabilidad...
 
Administracion servidores linux
Administracion servidores linuxAdministracion servidores linux
Administracion servidores linux
 
Spring - Inyección de Dependencias
Spring - Inyección de DependenciasSpring - Inyección de Dependencias
Spring - Inyección de Dependencias
 

Último

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 

Último (19)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 

Persistencia de Datos con Hibernate

  • 1. Persistencia de Datos Ing. José Luis BugarinIng. José Luis Bugarin jbugarin@consultorjava.comjbugarin@consultorjava.com 1
  • 2. Objetivos Al final de la sesión usted debe ser capaz de: Conocer sobre la capa de acceso a datos en aplicaciones JAVA. Conocer sobre el Framework Hibernate para realizar transacciones de base de datos. 2
  • 3. Introducción • La persistencia es una de los conceptos fundamentales en el desarrollo de Aplicaciones ya que si un sistema de información no es capaz de preservar sus datos cuando se apaga, probablemente será muy poco útil. • Conforme los sistemas se volvían más complejos, fueron siendo necesarios mayores niveles de abstracción, lo que llevó a plantear una clara separación arquitectónica entre el acceso a los datos y el procesamiento de los mismos. • Actualmente, la realidad presenta sistemas de información distribuidos, interoperables, con fuentes de datos heterogéneas y con capacidades de almacenamiento masivo, donde sin lugar a dudas, la orientación a objetos se ha convertido en el paradigma dominante para el desarrollo de este tipo de sistemas. 3
  • 4. Introducción • ¿Son las BBDD relacionales la mejor elección para la persistencia en aplicaciones orientadas a objetos? • La respuesta a esta pregunta es complicada y durante los últimos 15 años los desarrolladores han hablado de lo que se conoce como paradigm mismatch, y que es el resultado de las diferencias existentes entre el paradigma de orientación a objetos y el paradigma relacional (Ej. los conceptos básicos de identidad, clase, herencia y polimorfismo no son soportados de forma nativa por una base de datos relacional). 4
  • 5. Definición de Persistencia • Es la capacidad que tiene un objeto de “perdurar” fuera del proceso que lo creo. El estado de un objeto puede ser almacenado en disco y recuperado en un futuro. 5
  • 6. ALTERNATIVAS PARA LA CAPA DE PERSISTENCIA • SQL / ODBC – Mecanismo mas conocido por los programadores. – Se usa en conjunto con el Patrón DAO(Data Acces Object). – Es un api orientado a sentencias. – Para manipular los datos de una tabla estos tienen que ser especificados al menos 3 veces (insert, update y select). 6
  • 7. ALTERNATIVAS PARA LA CAPA DE PERSISTENCIA • Serialización – Capacidad para escribir objetos a través de una red de comunicación en un flujo de bytes que podría persistir a un fichero o a una Base de Datos. 7
  • 8. ALTERNATIVAS PARA LA CAPA DE PERSISTENCIA • Sistemas de BD Orientadas a Objetos – La idea es almacenar los objetos de nuestra aplicación en BBDD sin tener que “retorcer” el modelo de objetos. – Las BBDD OO se basan en el modelo jerárquico anterior al modelo relacional y ofrecen una integración sencilla dentro del entorno de una aplicación OO (sin un lenguaje intermedio como es SQL). – La tecnología BBDD OO no ha sido ampliamente adoptada en la industria y no parece que esto vaya a ocurrir en un futuro cercano. 8
  • 9. ALTERNATIVAS PARA LA CAPA DE PERSISTENCIA • Persistencia XML – Es una variación de la Serialización (Facilita en acceso a los datos pero al no ser mas que un fichero de texto no ofrece ninguna capacidad añadida para la gestión de datos) • Procedimientos almacenados en BBDD – se delega la persistencia a nivel de BBDD (se desplazan algunos trabajos fuera de la capa de negocio) 9
  • 10. Framework de Persistencia - Definición • Conjunto cohesivo de clases que colaboran para prestar servicios a la parte fundamental e invariable de un subsistema lógico. • Contiene clases concretas y, especialmente, abstractas que definen las interfaces que conformarán las interacciones en que participan y otras invariantes. • En términos generales se requiere que el usuario defina subclases para utilizar, adaptar, y ampliar los servicios que ofrecen las clases del framework. 10
  • 11. Framework de Persistencia - Requisitos • Guardar y recuperar objetos en / desde un almacenamiento persistente. • - Manejar transacciones del tipo commit y rollback. • - Diseño que de soporte a: – Extensión para permitir múltiples soportes de almacenamiento: • BD Relacionales. • Ficheros • Etc. – Facilidad de uso. – Ser muy trasparente. – Reutilización y Extensibilidad 11
  • 13. HIBERNATE • Hibernate, es una herramienta para el mapeo objeto / relacional de alto rendimiento libre (licenciado bajo GNU Public License). • Hibernate va a soportar características de la orientación a Objetos tales como asociaciones, herencia, polimorfismo, composición, colecciones, etc. • Hibernate va a permitir expresar queries en una extensión de SQL propia y portable (HQL) así como en SQL nativo. 13
  • 14. HIBERNATE • Hibernate implementa el mapeo objeto/relacional y los interfaces para la gestión de persistencia definidos dentro de JPA a través los módulos Hibernate Annotations e Hibernate EntityManager, los cuales se encuentran alrededor del maduro y poderoso modulo Hibernate Core. 14
  • 15. HIBERNATE • Los módulos de Hibernate pueden ser almacenados y combinados como se desee. Es posible utilizar Hibernate como proveedor de persistencia en cualquier entorno Java y esta completamente certificado por Sun. 15
  • 16. OBJETIVO DE HIBERNATE • El objetivo de Hibernate es liberar al desarrollador del 95% de las tareas de programación comunes relacionadas con la persistencia de datos en comparación con una codificación manual con SQL y el API JDBC. • Hibernate 3 requiere la JDK 1.3.1 o superior (1.4.2 y 1.5.0 recomendado) 16
  • 18. ESTANDARES SOPORTADOS • Java Management Extension (JMX) 1.2 • Java Transaction API (JTA) 1.0.1B • JDBC 3.0 • Java Naming and Directory Interface (JNDI) 1.2.1 • EJB 3.0 18
  • 19. Hibernate Core • Especifica la sintaxis y semántica para el mapeo de objeto / relacional a través de ficheros XML nativos de Hibernate y este modulo funciona en cualquier entorno de JDK. • Este modulo va a proporcionar la persistencia de forma transparente, con el único requisito de que las clases persistentes tienen que tener un constructor sin argumentos (esto se debe a que Hibernate utiliza reflection). • Hibernate Core genera sentencias SQL, recupera los resultados vía JDBC y convierte la aplicación en portable para todas las BBDD. 19
  • 20. Hibernate Core • Hibernate Core ofrece un amplio conjunto de opciones de consulta. Va a permitir escribir sentencias SQL estándar o sentencias HQL (Hibernate Query Language) • Hibernate Core va a optimizar la carga masiva de objetos con varias opciones de fetch y cache. 20
  • 21. HIBERNATE ANNOTATIONS • Hibernate, como cualquier otra herramienta para el mapeo objeto / relacional requiere un conjunto de “metadatos” que van a gobernar la transformación de una representación a otra (y viceversa). • De forma opcional, con Hibernate 3.2 se puede utilizar para el mapeo objeto / relacional el mecanismo de anotaciones incorporado en la JDK 5.0. • Hibernate Annotations incluye: – - Las anotaciones estándar EJB 3.0 (JSR 220) para el mapeo objeto / relacional. – - Una extensión de anotaciones especificas de Hibernate para la optimización de rendimiento y mapeos especiales. 21
  • 22. Hibernate Entity Manager • Es un pequeño wrapper alrededor de Hibernate Core que proporciona compatibilidad JPA. • El proveedor de persistencia Hibernate es el proveedor de persistencia por defecto para el servidor de aplicaciones JBoss. • Hibernate Entity Manager implementa: – - Estándar para la gestión de persistencia Java (JPA) – - Lenguaje de consultas estándar. – - Reglas estándar para el ciclo de vida de los objetos persistentes – - Estándar para la configuración y empaquetado. 22
  • 23. Hibernate Search • Proporciona un poderoso motor de búsqueda de texto para el modelo de dominio a través de una configuración transparente y un API común. • Será necesario guardar y actualizar un índice y mantener una correspondencia entre la estructura de índices y el modelo de dominio. • Hibernate Search utiliza internamente Apache Lucene y proporciona la capacidad de repliegue del API nativa de Lucene. 23
  • 24. Hibernate Tools • Nuevo conjunto de herramientas para Hibernate 3 implementadas como un plugin de Eclipse (también en netbeans) junto con una tarea Ant unificada para la integración dentro del ciclo de construcción. Hibernate Tools es el componente principal de JBoss Tools que forman parte del JBoss Developer Studio. 24
  • 25. Características de Hibernate Tools • Editor de mapeo: Un editor para el mapeo de ficheros XML Hibernate con soporte para auto- completado y resaltado de sintaxis. • Consola: La perspectiva de consola de Hibernate va a permitir configurar conexiones con BBDD, va a proporcionar la visualización de las clases persistentes y sus relaciones y va a permitir ejecutar consultas HQL interactivamente contra la BBDD y navegar por los resultados de la consulta. 25
  • 26. Hibernate Tools • Herramienta de Ingeniería Inversa de BBDD: Esta herramienta es capaz a partir de un esquema de BBDD de generar automáticamente y en cuestión de segundos las clases del modelo de dominio, los ficheros xml de mapeo de Hibernate, las clases de Entidad Anotadas, documentación HTML 26
  • 27. Hibernate Tools • Asistentes: Se proporcionan varios asistentes entre los que se incluyen uno para generar el fichero de configuración de Hibernate (hibernate.cfg.xml) y otro para configurar la consola de Hibernate. • Tarea Ant: Va a permitir ejecutar la generación del esquema, la generación de mapeos, la generación de código Java como parte del ciclo de construcción. 27
  • 28. ARQUITECTURAS DE SOFTWARE • El rol principal que podemos identificar cuando se tratan de estos temas es el ARQUITECTO DE SOFTWARE. • Descripción General: – tiene la responsabilidad global de dirigir las principales decisiones técnicas, expresadas como la arquitectura de software. – incluye la identificación y la documentación de los aspectos arquitectónicamente significativos del sistema, que incluye las “vistas” de requisitos, diseño, implementación y despliegue del sistema. 28
  • 29. ARQUITECTO DE SOFTWARE • Tiende a ser generalista en lugar de especialista, conoce muchas tecnologías a un alto nivel en lugar de pocas tecnologías a nivel de detalle. • Toma decisiones técnicas mas amplias y, por lo tanto, un amplio conocimiento y experiencia, así como habilidades de comunicación y liderazgo, son esenciales. 29
  • 33. DIAGRAMAS DE ARQUITECTURA • ¿Qué podemos observar? 33