Definizione e caratteristiche dell’ORM (Object-Relational Mapping)

Definizione e caratteristiche dell’ORM (Object-Relational Mapping)

Object-Relational Mapping

L’ORM (Object-Relational Mapping) è una tecnica di programmazione che fornisce la persistenza dei dati, il cui concetto fa riferimento alla caratteristica dei dati di sopravvivere all’esecuzione del programma che gli ha creati. Senza questa capacità i dati vengono salvati solo in memoria RAM e verranno persi allo spegnimento del computer. Con la parola mappping intendiamo il processo di trasformazione dei dati da semplici oggetti descritti nelle classi Java e veri e propri dati presenti nel database.

Per stabilire come questo mapping debba avvenire, alcuni servizi di ORM fanno uso di metadati di configurazione come ad esempio le annotazioni (presentate con il simbolo @ seguito dal nome dell’annotazione).

I principali vantaggi derivanti dall’uso di tale tecnica sono:

  • risoluzione del problema dell’impedance mismatch che rende incompatibile il progetto orientato agli oggetti ed il modello relazionale sul quale è basata la maggior parte dei sistemi di gestione dei database relazionali (RDBMS);
  • elevata portabilità rispetto alla tecnologia RDBMS utilizzata: cambiando DBMS non è necessario riscrivere il codice per implementare la persistenza dei dati;
  • riduzione della qantità di codice da redigere: l’ORM maschera dietro semplici comandi le complesse attività di creazione, prelievo, aggiornamento ed eliminazione dei dati (CRUD, Create Read Update Delete).

Definizione e caratteristiche dell'ORM (Object-Relational Mapping)

Java Persistence API

Java Pesistence API (JPA) è lo standard Java che fornisce agli sviluppatori un servizio ORM. Java Persistence è struturato in 4 aree:

  1. Java Persistence API: pacchetto contenente l’insieme di metodi e classi utilizzabili;
  2. Java Persistence Query Lenguage (JPQL): linguaggio simile a SQL adoperato per realizzare interrogazioni o aggiornamenti delle entità del database;
  3. Java Persistence Criteria API: insieme di operazioni impiegate per l’interrogazione o l’ aggiornamento di dati; la differenza con JPQL è che queste operaioni vengono eseguite sugli oggetti e non sul database;
  4. Metamodel API: area usata per la creare la relazione tra la classe ed una entità del database.

In JPA il mapping è dichiarativo, tutte le operazioni sui dati (CRUD) sono fornite dall’interfaccia Entity Manager che è la più importante visto che costituisce un ponte tra il mondo orientato agli oggetti (Java) e quello relazionale (database).

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *