Programarea cu Spring JDBC – O abordare practica

Arhitectura generala a unei aplicatii include cateva layere cum avem spre exemplu in poza de mai jos:

Jan 18, 2018 1324
Arhitectura generala a unei aplicatii include cateva layere cum avem spre exemplu in poza de mai jos:

programarea_cu_Spring_JDBC.png


O scurta prezentare a acestei structuri include:

  • Layer-ul de prezentare: browserul web, aplicatiile mobile, aplicatii de sine statatoare. Mai exact layer-ul care arata datele si interactioneaza cu utilizatorul
  • Layer-ul de business service care implementeaza logica de business (business logic). Obiectele de business (busines objects) sunt folosite de serviciile de business. Ele trebuie sa fie sincronizate cu persistence layer.
  • Layer-ul aferent accesului de date asigura sincronizarea intre business objects si persistence layer. Pentru fiecare domain entity, ar trebui sa dezvoltam o clasa DAO separata (Data Access Object).

Hai sa ne uitam un pic la cum sa scriem DAO cu ajutorul Spring.

Rolul JDBC este sa permita o interactiune uniforma de la aplicatie catre baza de date. JDBC foloseste driverele, cate unul pentru fiecare baza de date. Drivere-ele traduc comenzile JDBC API in comenzi pentru baza de date.

Spring_JDBC.jpg


Probabil ca unii se intreaba de ce sa folosim Spring JDBC, din moment ce avem deja ORM? Sunt anumite motive pentru asta:

  • Spring JDBC overa flexibilitate; foloseste toate posibilitatile RDBMS.
  • Spring JDBC este transparent – totul este sub control, in time ce ORM creaza comenzile SLQ de unul singur.
  • Spring JDBC ofera un nivel mai ridicat de performanta.

In acest caz de ce nu ar fi JDBC indeajuns? Sunt cateva motive:
  • JDBC simplu inca are nevoie de manual exception handling
  • JDBC simplu necesita manual transaction management
  • JDBC simplu nu ofera maparea datelor catre obiecte
  • O cantitate mare de service code

Design pattern-ul DAO implica potrivirea intre business object si tabelul din baza de date. Putem sa presupunem ca incepem cu urmatoarea interfata si cu urmatorul tabel din baza de date:

DAO_design_pattern.JPG


Obiectivul nostru este sa persistam un Book object din memorie in tabelul Book din baza de date. Pentru a lucra cu JDBC simplu in acest caz, codul ar arata asa:

plain_JDBC.JPG


Uitandu-ne la ce trebuie sa facem folosind JDBC simplu, putem sa evidentiem urmatoarea secventa:

  • Definirea parametrilor de conexiune
  • Deschiderea conexiunii
  • Specificarea declaratiei
  • Pregatirea si executarea declaratiei
  • Iterarea rezultatelor
  • Munca pentru fiecare iteratie
  • Procesarea oricarei exceptii
  • Manipularea tranzactiilor
  • Inchiderea conexiunii

In urmatorul nostru articol ne vom uita la cum putem face asta cu Spring JDBC.

Esti interesat sa iti dezvolti abilitatile de programare cu Spring? Descopera cursurile noastre Spring Frameworks pentru dezvoltarea aplicatiilor, Spring Core si Spring Databases

Catalin Tudose
Java and Web Technologies Expert

Daca iti place acest articol, distribuie-l si prietenilor tai!




Mai ai intrebari?
Contacteaza-ne.
Thank you.
Your request has been received.