Orm
-
Upload
joan-sebastian-ramirez-perez -
Category
Software
-
view
33 -
download
0
Transcript of Orm
![Page 1: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/1.jpg)
Joan Sebastián Ramírez Pérez
Mapeo Objeto Relacional 2017
![Page 2: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/2.jpg)
Agenda
❖ ¿Qué es un ORM?❖ Ventajas❖ JPA❖ Spring Data❖ Bibliografía
![Page 3: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/3.jpg)
¿Qué es un ORM?❖ ORM es Object Relational Mapping❖ Modelo de programación que nos permite
transformar las relaciones (tablas de base de datos) en una serie de entidades (objetos), simplificando el acceso a los datos persistentes para el programador.
❖ Se aplica a la capa de persistencia de las aplicaciones.
![Page 4: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/4.jpg)
Ventajas❖ Reduce la cantidad de código, con esto se
aumenta la velocidad de desarrollo❖ Portabilidad.❖ Tratar las relaciones como objetos permite
hablar en un solo lenguaje desde la aplicación.❖ Abstracción de la base de datos usada.❖ Cumplimiento patrón Domain Model
![Page 5: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/5.jpg)
JPA❖ Java Persistence API❖ API de persistencia Java que se desarrollo para
el estándar EJB 3.0.❖ JPA establece una interface común que es
implementada por un proveedor de persistencia de nuestra elección (TopLink, EclipseLink, Hibernate, entre otros).
❖ Provee una especificación genérica para un ORM en Java EE y Java SE.
![Page 6: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/6.jpg)
![Page 7: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/7.jpg)
Historia❖ ORM de otros distribuidores:
❖ iBATIS 2001❖ Hibernate 2001❖ JDO (Java Data Object) usando JR 12 en 2002
❖ JPA 1.0: se introduce en mayo 2006 y usa el estándar JSR 220. Java EE 5.
❖ JPA 2.0: lanzado en diciembre 2009 y trabaja con el estándar JSR 317. Java EE 6.
❖ JPA 2.1: lanzado en abril 2013 y trabaja con el estándar JSR 338. Java EE 7.
![Page 8: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/8.jpg)
Implementaciones
![Page 9: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/9.jpg)
Vocabulario requerido
![Page 10: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/10.jpg)
POJO
❖ Plain Old Java Object
![Page 11: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/11.jpg)
Anotación
❖ Permite agregar metadatos (datos descriptivos) al código fuente.
❖ Para agregarlas se usa @❖ http://docs.oracle.com/java
ee/7/api/index.html?javax/persistence/package-summary.html
![Page 12: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/12.jpg)
Entidad
❖ Objeto que va a representar una de las entidades de la base de datos.
❖ Son simples POJOS que pueden tener atributos persistimos y no persistidos.
❖ Tienen que ser serializables.
![Page 13: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/13.jpg)
JPQL
❖ Java Persistence Query Language
❖ Lenguaje usado para realizar peticiones a la base de datos.
![Page 14: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/14.jpg)
Named Query
❖ Consultas JPQL
![Page 15: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/15.jpg)
Native Query
❖ Consultas en el lenguaje nativo del motor de base de datos que es traducido a objetos
![Page 16: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/16.jpg)
Entity Manager❖ Objeto liviano que nos provee la
interface para la gestión de las entidades.
❖ Una instancia EntityManager está asociado con un contexto de persistencia. Un contexto de persistencia es un conjunto de instancias de entidad en la que para cada entidad persistente hay una instancia de entidad única. Dentro del contexto de persistencia, las instancias de la entidad y de su ciclo de vida se gestionan.
❖ La API EntityManager se utiliza para crear y eliminar instancias persistentes, para encontrar entidades por su clave primaria, y para hacer consultas sobre las entidades.
![Page 17: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/17.jpg)
Entity Manager Factory❖ Objeto pesado que debe
abrirse y cerrarse en cada inicio de la aplicación. Uno por aplicación.
❖ Es único y permite gestionar todas las entidades .Si tenemos varias conexiones a base de datos deberemos definir un nuevo concepto que nos permite clarificar que tenemos dos EntityManagerFactories distintos. Este concepto es el que se conoce como PersistenceUnit.
![Page 18: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/18.jpg)
Persistence Unit
❖ Define el conjunto de clases que serán gestionadas por las instancias del EntityManager en una aplicación.
❖ Este conjunto de clases representa los dates que serán contenidos en un único espacio de almacenamiento.
![Page 19: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/19.jpg)
Operaciones CRUD
❖ Crear: entityManager.persist(entity);❖ Consultar:
entityManager.persist.find(entity.class, value);❖ Actualizar: entityManager.persist.merge(entity);❖ Eliminar: entityManager.persist.remove(entity);
![Page 20: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/20.jpg)
Tutorial
❖ http://docs.oracle.com/javaee/6/tutorial/doc/bnbpy.html
![Page 21: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/21.jpg)
Spring Data❖ Módulo de Spring que a su
vez engloba un gran número de sub-módulos cuyo objetivo es facilitar el acceso y explotación de datos en aplicaciones basadas en Spring, obteniéndose estos datos de fuentes tan dispares como servicios RestFUL, bases de datos relacionales a través de JPA, o bases de datos NoSQL como MongoDB o Neo4J, entre otras
![Page 24: Orm](https://reader031.fdocuments.es/reader031/viewer/2022030307/58e4dc431a28abf5048b61c9/html5/thumbnails/24.jpg)
Bibliografía
❖ https://es.slideshare.net/software_alchemy/overview-of-jpa-java-persistence-api-v20?qid=2eada4a1-c9d0-43f6-a8c6-b91a9bbba0f8&v=&b=&from_search=3
❖ http://docs.oracle.com/javaee/6/tutorial/doc/bnbpz.html
❖ https://jcp.org/en/jsr/detail?id=338❖ https://www.slideshare.net/brmeyer/orm-jpa-hiberna
te-overview