Frameworks de Persistencia Java Prof. Ing. Esteban Ramírez

Slides:



Advertisements
Presentaciones similares
Fundamentos de Base de Datos
Advertisements

FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
2010Ing. de Sistemas II Persistencia en EJB3 Pasos para crear entity beans.
JEE Entity Enterprise Beans Herencia. 2009Ing. de Sistemas II2 Herencia y Polimorfismo en Entity Beans Los Entity Beans son clases Java comunes que soportan.
Las aplicaciones requieren datos persistentes
Acceso a Bases de Datos con Java
Introducción a HIBERNATE
CLASIFICACIÓN DE CLASES Orientación a objetos UNIVERSIDAD DEL VALLE DEL FUERTE Análisis y Diseño Orientado a Objetos Cañedo Encinas Fernando Onorat. Ingeniería.
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Introducción a LAS Bases de Datos
Lenguaje de programación Java
JAVA PERSISTENCE API (jpa)
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
UML 1.4 Peter Emerson Pinchao Solis.
¿QUÉ SON LAS BASES DE DATOS?
“SISTEMA DE PASANTÍAS PARA LA FACULTAD DE INGENIERÍA
Unidad 6: EJB 3.0 David Rodríguez 1.
Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz.
Teoría de los lenguajes Proyecto SIGU Equipo Nº3 Universidad Argentina J. F. Kennedy Sede: Don Bosco Integrantes: Irene Arias Fernández Mariana Pacheco.
Lenguaje de consulta de Hibernate
Oracle, orientado a objetos
JAVA Persistence API (JPA)
Programación por capas: Capa de Clases
Programación Orientada a Objetos en Java
DIAGRAMA DE CLASE.
BASES DE DATOS ORIENTADAS A OBJETO
Sindy Carolina Asprilla
Enterprise Java Beans Rubén Trujillo Sept-Dic 2008.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Java Persistance API JPA.
Tema 10: Interfaces Antonio J. Sierra.
UNIDAD I Conceptos Básicos.
SCJP Sun Certified Programmer for Java 6
SQL Básico Prof. Nelliud D. Torres.
Desarrollo de Aplicaciones Utilizando Java Edición Empresarial – JEE6
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
Componentes sintácticos
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
Mapeo Objeto – Relacional JPA – Java Persistence Api
Enterprise Java Beans. EJBs Beans gestionados por un contenedor del servidor de aplicaciones para gestionar el acceso a recursos (bases de datos, colas.
Programación en Visual Basic Lección #8: SQL Por Antonio F. Huertas.
CONSULTAS SENCILLAS A LA BASE DE DATOS
Bases de Datos Sql.
Introducción a UML DIAGRAMA DE CLASES Departamento de Informática
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Bienvenidos. Desarrollo de Aplicaciones I Lic. Alfonso Felipe Lima Cortés
TEMA 9: DIAGRAMA DE CLASE EN UML
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Curso de Java y Aplicaciones Web Facultad Politécnica – U.N.A. Ing. Esteban Ramírez Persistencia Java.
LENGUAJE ESTRUCTURADO DE CONSULTAS
Lenguaje Estructurado de Consulta
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 0 Introducción.
Curso de Java Introducción al Paradigma Orientado a Objetos Prof. Ing. Guido Acosta.
Conceptos. -Programación orientada a eventos. -Instancias de clase. -Atributo de los objetos. -Método main, get y set. -Ejemplo de la declaración de.
JOIN EN MYSQL Bueno en esta presentación mostrare cosas acerca de los usos de la sentencia JOIN en mysql , mediante esta presentación planeo mostrar los.
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
Acceso a Datos Erick López Ovando Licenciado en Informática.
SQL es el lenguaje de comunicación entre el programa cliente y programa servidor; Oracle es un programa servidor, en el que está la base de datos propiamente.
Sistemas de Información I
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
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.
Motor de Persistencia - Mapeos. El mapeo Objeto - Relacional es un acercamiento entre el Modelo de Objetos y el Modelo Relacional, para poder persistir.
Patricia López & Julio Medina Computadores y Tiempo Real Santander, 2013 G80 - Advanced Computation 1 Generación de Código con BOUML.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versión.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Softlogia S.R.L. Formación de Recursos Humanos Hibernate Core Instructor: Martin R. Baspineiro.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Selección Condicionada de Filas Uso de la cláusula WHERE La cláusula WHERE restringe las columnas que retorna una consulta según la condición que se imponga.
Transcripción de la presentación:

Frameworks de Persistencia Java Prof. Ing. Esteban Ramírez

Java Persistence API Se llama “persistencia” de los objetos java a su capacidad para guardarse y recuperarse desde un medio de almacenamiento. La persistencia en Base de Datos relacionales se suele implementar mediante el desarrollo de funcionalidad específica utilizando la tecnología JDBC - Java Database Connectivity o mediante frameworks que automatizan el proceso a partir de mapeos (conocidos como Object Relational Mapping, ORM). JPA (Java Persistence Api) Proporciona un estándar para gestionar datos relacionales en aplicaciones Java SE o Java EE, de forma que además se simplifique el desarrollo de la persistencia de objetos java. Es una API de persistencia de POJOs (Plain Old Java Object). Es decir, objetos simples que no heredan ni implementan otras clases excepto Object.

Frameworks – JPA providers

Frameworks – JPA providers

Motores de Bases de datos

Motores de Bases de datos

Motores de Bases de datos F R A M E W O K JPA Provider

JPA: Java Persistence API El mapeo objeto-relacional (es decir, la relación entre entidades Java y tablas de la base de datos, queries con nombre, etc) se realiza mediante anotaciones en las propias clases de entidad. No se requieren ficheros descriptores XML. También pueden definirse transacciones como anotaciones JPA. @ anotación

JPA: Java Persistence API @Anotaciones Mapeo Lógico Mapeo Físico Permiten describir modelo de objeto, asociaciones de clase, etc Describen esquemas físicos de base de datos, tablas, columnas, índices, etc. @OneToOne,@OneToMany,etc @Column,@JoinColumn,etc

JPA: Arquitectura El siguiente diagrama muestra la relación entre los componentes principales de la arquitectura de JPA:

JPA: Excepciones

JPA: entidad Una entidad es un objeto de dominio de persistencia. Normalmente, una entidad representa una tabla en el modelo de datos relacional y cada instancia de esta entidad corresponde a un registro en esa tabla

JPA: entidad @Entity public class Empleado implements Serializable { La clase debe poseer en su encabezado la anotación javax.persistence.Entity @Entity Ningún método o variables de instancias deben ser declaradas como FINAL Los atributos persistentes de la clase deben ser declarados como PRIVATE,PROTECTED o package-private,y solo deben ser accesadas por los metodos de la clase @Entity public class Empleado implements Serializable { private Long id; //setId getId public Empleado(){ … } Si una instancia de una entidad entra en entornos remotos ,debe implementar la interfaz SERIALIZABLE La clase debe poseer un constructor PUBLIC,PROTECTED sin argumentos La clase no debe ser declarada como FINAL

JPA: entidad El estado persistente de una entidad puede ser accesible a través de variables de instancia a la entidad o bien a través de las propiedades de estilo de JavaBean (Setters and Getters). Los campos o propiedades pueden tener asociados los siguientes tipos Java: Tipos primitivos de Java (int,long,double,etc) java.lang.String Otro tipo de objeto serializable, incluyendo: Wrappers de tipos primitivos en Java (Integer,Long,Double,etc) java.math.BigInteger java.math.BigDecimal java.util.Date java.util.Calendar java.sql.Date java.sql.Time java.sql.TimeStamp User-defined serializable types byte [ ] Byte [ ] char [ ] Character [ ] Tipos enumerados (Enumeration) Otras entidades y/o colecciones de entidades

Propiedades Persistentes JPA: entidad Campos Persistentes Propiedades Persistentes

Las variables genéricas de estos tipos también pueden ser utilizadas JPA: entidad Las colecciones posibles son: java.util.Collection java.util.Set java.util.List java.util.Map Las variables genéricas de estos tipos también pueden ser utilizadas

JPA: entidad - asociaciones @OneToOne Cada entidad se relaciona con una sola instancia de otra entidad. Donde la ambas se referencian por la misma llave PK. @OneToMany Una entidad, puede estar relacionada con varias instancias de otras entidades @ManyToOne Múltiples instancias de una entidad pueden estar relacionadas con una sola instancia de otra entidad. Esta multiplicidad es lo contrario a la relación uno a muchos. Usado también como si fuera una relación OneToOne @ManyToMany En este caso varias instancias de una entidad pueden relacionarse con múltiples instancias de otras entidades.

JPA: entidad - asociaciones @one-to-one @Entity @Table(name=“usuarios”) public class Usuario implements Serializable { …//username password id @OneToOne @JoinColumn(name=“id") private Persona persona; //setter and getter } @Entity @Table(name=“personas”) public class Persona implements Serializable { …//id nombre apellido fechaNacimiento }

JPA: entidad - asociaciones @OneToOne Cada entidad se relaciona con una sola instancia de otra entidad. Donde la ambas se referencian por la misma llave PK. @OneToMany Una entidad, puede estar relacionada con varias instancias de otras entidades @ManyToOne Múltiples instancias de una entidad pueden estar relacionadas con una sola instancia de otra entidad. Esta multiplicidad es lo contrario a la relación uno a muchos. Usado también como si fuera una relación OneToOne @ManyToMany En este caso varias instancias de una entidad pueden relacionarse con múltiples instancias de otras entidades.

JPA: entidad - asociaciones @one-to-many @Entity @Table(name=“paises”) public class Pais implements Serializable { … @OneToMany(mappedBy="pais",targetEntity=Ciudad.class) private Set<Ciudad>ciudades; } @Entity @Table(name="ciudades") public class Ciudad { … @ManyToOne @JoinColumn(name="fk_pais") private Pais pais; }

JPA: entidad - asociaciones @OneToOne Cada entidad se relaciona con una sola instancia de otra entidad. Donde la ambas se referencian por la misma llave PK. @OneToMany Una entidad, puede estar relacionada con varias instancias de otras entidades @ManyToOne Múltiples instancias de una entidad pueden estar relacionadas con una sola instancia de otra entidad. Esta multiplicidad es lo contrario a la relación uno a muchos. Usado también como si fuera una relación OneToOne @ManyToMany En este caso varias instancias de una entidad pueden relacionarse con múltiples instancias de otras entidades.

JPA: entidad - asociaciones @Many-to-One @Entity @Table(name=“ciudades”) public class Ciudad implements Serializable { … @ManyToOne @JoinColumn(name="fk_pais") private Pais pais; }

JPA: entidad - asociaciones @OneToOne Cada entidad se relaciona con una sola instancia de otra entidad. Donde la ambas se referencian por la misma llave PK. @OneToMany Una entidad, puede estar relacionada con varias instancias de otras entidades @ManyToOne Múltiples instancias de una entidad pueden estar relacionadas con una sola instancia de otra entidad. Esta multiplicidad es lo contrario a la relación uno a muchos. Usado también como si fuera una relación OneToOne @ManyToMany En este caso varias instancias de una entidad pueden relacionarse con múltiples instancias de otras entidades.

JPA: entidad - asociaciones @Many-to-Many @Entity @Table(name=“estudiantes”) public class Estudiante implements Serializable { … @ManyToMany @JoinTable(name="estudiante_cursos", joinColumns=@JoinColumn(name="fk_estudiante"), inverseJoinColumns=@JoinColumn(name="fk_curso")) private Set<Curso>cursos; }

JPA: Ciclo de vida de una entidad

JPA: Ciclo de vida de una entidad

Persistance Library(Provider) EntityManagerFactory JPA: Arquitectura QuickStart Persistance.xml javax.persistance Persistance Unit Name Persistance Library(Provider) Entities Provider settings EntityManagerFactory EntityManager EntityManager

JPA: Operaciones con entidades

JPA: Operaciones con entidades

JPA: Operaciones con entidades

JPA: Operaciones con entidades EntityManager.flush() Sincroniza los datos de una entidad y los hace persistentes en la base de datos. Flush() Refresh() Base de datos EntityManager.refresh(entidad) Contrario al flush() ,este método vuelve a cargar los datos originales de la base de datos a la entidad.

JPA – Estructura de Proyecto Tabla en base de datos Clase Persona.java

JPA – Estructura de Proyecto Creación de la clase Persona.java

JPA – Estructura de Proyecto Archivo de configuración del motor de persistencia persistence,xml

JPA – Estructura de Proyecto Creacion del EMF (EntityManagerFactory)

Java Persistence Query Language (JPQL)

Java Persistence Query Language (JPQL)

Java Persistence Query Language (JPQL) Clausulas : FROM Existen varias formas de simplificar una clase a la hora de realizar la consulta hql> FROM mx.model.Empleado hql> FROM Empleado Dando como resultado una colección de objetos de tipo Empleado SELECT la clausula SELECT selecciona cual(es) objeto (s)y cual (es) propiedad(es) se retornara en el resultado del query. hql> SELECT v.marca FROM Vehiculo as v hql> SELECT v.marca FROM Vehiculo v WHERE v.marca like ‘toy%’ hql> SELECT user.persona.nombre FROM Usuario user hql> SELECT user.username,p.nombre FROM Usuario user,Persona p La anterior consulta nos retorna Object[ ] WHERE Ayuda a filtrar la lista de instancias retornadas. hql> FROM Usuario user WHERE user.username = ‘rcuello’ hql> FROM Usuario user WHERE user.persona.cedula=123456 hql> FROM Usuario user WHERE username.username IS NOT NULL ORDER BY La lista retornada por una consulta puede ser ordenada por cualquier propiedad de un objeto. hql> FROM Empleado emp ORDER BY emp.nombre asc