JDBC (Java Database Connectivity) este o tehnologie care oferă acces la API-urile Java în baze de date relaționale. Din acest motiv, aplicațiile noastre Java pot executa interogări SQL și interacționează cu bazele de date (în continuare - baze de date), care suportă SQL.
JDBC este extrem de flexibil și ne permite să scriem aplicații care nu depind de o anumită platformă și pot interacționa cu alte DBMS-uri fără nicio modificare a codului.
Ce avantaje ne oferă JDBC:
- Manipularea simplă și inteligibilă a interogărilor SQL
- Extrem de ubdna pentru aplicații mici
Sintaxă simplă și clară
Care sunt dezavantajele JDBC:
- Este dificil de utilizat și de sprijin în proiecte mari
- O cantitate mare de cod
- Este dificil de implementat conceptul de MVC.
Ce este Maparea relațională a obiectelor?
Atunci când creăm o aplicație Java și dorim să facem aplicația noastră acces la informațiile stocate în baza de date, trebuie să înțelegem un detaliu extrem de important.
Există o diferență enormă între modelul obiect și modelul relațional.
SGBD ne oferă informații într-un format tabelar, în timp ce Java ne oferă informații sub forma unui anumit grafic al obiectelor.
Imaginați-vă că avem clasa de dezvoltatori. care reprezintă dezvoltatorul:
Și există o tabelă în baza de date, care reprezintă și dezvoltatorul:
Tabelul HIBERNATE_DEVELOPER:
Să presupunem că după ce am creat atât clasa java, cât și tabela din baza de date, trebuie să schimbăm baza de date, avem imediat o problemă.
În plus, atunci când scriem sau citim date în / din baza de date, avem 5 probleme care sunt legate de diferența dintre modelul orientat-obiect (OO) și modelul relațional:
- moștenire
În modelul relațional, nu există un concept similar cu moștenirea, care este unul dintre principiile cheie ale POR. - identificare
Pentru o bază de date există o singură entitate prin care un obiect poate fi identificat este cheia primară. În timp ce în Java avem lucruri ca (entity1 == entity2) și (object1.equals (object2)). - asociere
În Java, folosim referințe obiect pentru asociere, iar în modelul relațional, cheia externă. - acces
În Java și în baza de date relațională, modalități absolut diferite de a accesa obiectul. - încapsulare
Foarte des, atunci când dezvoltați aplicații, veți (sau ați întâlnit deja) faptul că modelul nostru OO are mai multe clase decât tabelele din baza noastră de date.
De aici apare problema: cum se face ca aplicația Java să acceseze baza de date și să interpreteze corect aceste informații.
Cu alte cuvinte, trebuie să creăm o relație între Obiect și entitatea relaționată, cu alte cuvinte Object-Relational-Binding sau ORM (Object-Relational Mapping).
ORM este o tehnică de programare care servește la transformarea datelor atunci când este schimbată între o bază de date relațională și (în cazul nostru) Java.
Deci, care sunt avantajele ORM în comparație cu JDBC?
- Permite metodelor noastre de afaceri să acceseze nu baza de date, ci clasele Java
- Accelerează dezvoltarea aplicațiilor
- Bazat pe JDBC
- Separă cererile SQL din modelul OO
- Vă permite să nu vă gândiți la implementarea unei baze de date
- Entitățile se bazează pe sarcini de afaceri, și nu pe structura bazei de date
- Gestionarea tranzacțiilor
- API, care implementează operațiunile de bază (CREATING, READING, MODIFYING, DELETING) obiectelor model.
- Legarea instrumentelor de personalizare a metadatelor
- Tehnica interacțiunii cu tranzacțiile, care vă permite să implementați funcții cum ar fi verificarea murdară, preluarea asociației lenești etc.
Cele mai răspândite cadre ORM sunt:
- Hibernatul (pe care îl vom studia în această serie de articole)
- EJB
- JDO
- Primăvara DAO
- TopLink