Tutorial Java – JDBC Baze de date : Partea 1

Pentru studiul conectivitatii aplicatiilor la bazele de date vom folosi aplicatia din figura de mai jos:

Java


In principal aplicatia din exemplul de fata “stie” sa adauge o inregistrare noua intr-o baza de date si sa stearga sau sa modfice aceste intregistrari. Pentru stocarea inregistrarilor se foloseste o baza de date de tip Sqlite. A fost ales acest tip de baza de date pentru usurinta configurarii si a faptul ca intrega baza de data este incapsulata sub forma unui singur fisier nemaifiind nevoie de un server special pentru baza de date. Acest lucru face utilizarea Sqlite foarte usoara, permitandu-ne sa ne concentram in special pe codul Java. Pe de alta parte JDBC-ul a fost construit in asa fel incat sa se asigure independenta fata de sistemul de baza de date utilizat. Din acest motiv indiferent daca se foloseste o baza de date Sqlite, MySql, Apache Derby, DB2 etc. modul de lucru ramane in cea mai mare masura la fel.

Pentru acest prim evemplu se creaza o baza de date care intr-o prima instanta va contine doar o singura tabela denumita salariati. Aceasta tabela are structura prezentata in codul SQL de mai jos:

Java


Dat fiind faptul ca intregul mecanism de JDBC ruleaza independent de baza de datele folosita vom avea nevoie de un driver ca sa asigure comunicarea intre baza de date folosita si JDBC. Fiecare sistem de baza de date are propriul driver JDBC. Aceste drivere sunt livrate sub forma de JAR-uri si, de cele mai multe ori pot fi preluate de pe site-ul producatorulului respectivului sitem de baze de date. In cazul de fata pentru Sqlite, va trebui sa folosim jar-ul sqlitejdbc-v056 (cu timpul numele acestui jar este posibil sa se schimbe pe masura ce apar alte versiuni de driver).

Conectarea la baza de date

Pentru dezvoltarea aplicatiei de mai sus, primul pas care trebuie facut este realizarea conexiunii la baza de date. Dat fiind faptul ca avem o aplicatie web vom folosi urmatorea abordare: prin intermediul unui ServletContextListener, in momentul in care aplicatia porneste vom crea conexiunea la baza de date si o vom seta ca atribut pe contexul aplicatiei. In momentul in care un servlet sau JSP are nevoie de conexiune, aceasta va putea fi preluat folosind codul this.getServletContext().getAtribute(numeleConexiunii). Folosind aceasta modalitate evitam cazul in care de fiecare data cand se face o operatie asupra bazei de date sa deschidem o noua conexiune, caz in care consumul de resurse ar fi foarte ridicat.
Codul de mai jos creaza conexiunea la baza de date:

Java


Pentru flexibilitate in deploymentul aplicatiei, am inclus numele bazei de date ca un parametru de initializare in web.xml (linia 6). In continuare in liniile 7 – 14 vom afla calea absoluta pentru fisierul care contine baza de date, vom incarca in memorie driverul si finalmente vom obtine o obiect de tip java.sql.Connection, care va reprezenta conexiunea noasta la aceasta baza de date. Acest obiect va fi stocat ca atribut pe context pentru a fi utilizat ulterior.

La inchiderea aplicatiei vom dori de asemenea sa inchidem si conexiunea la baza de date, din acest motiv, in metoda contextDestroyed avem apelul connection.close().

Inserarea unei inregistrari in baza de date

Urmatorul pas in dezvoltarea aplicatiei il constituie modalitatea in care putem introduce date in tabela salariati. Un anumit salariat are datele: id, nume si salariu. Pentru usurinta dezvoltarii aplicatiei vom folosi o clasa container pentru datele de tip salariat:

Java


Datele care vor alcatui o inregistrare sunt citie din formularul de mai jos:

Java


Pentru adaugarea unui salariat vom construi un servlet care se va ocupa de aceasta operatie. Acest servlet va fi apelat in momentul in care se face submit pentru formularul de mai sus. Codul servletului este prezentat mai jos:

Java


Intr-o prima instanta se citesc parametrii care contin datele introduse in formular si dupa aceasta se preia atributul conexiune de pe contextul servletului. Modalitatea prin care se insereaza ceva intr-un tabel este prin executarea unei mici bucati de cod SQL. Acest cod este trimis folosind un obiect de tip Statement. Obiectele de tip Stamente sunt create folosind conexiunea la baza de date (linia 10). Codul SQL care se va executa este compus “manual” prin concatenarea partii statice a codului cu valorile preluate de pe request.

In statementul de sql nu precizam nimic in cazul ID-ului. Acesta va fi generat automat de sistemul de baze de date si va fi inserat in tabela astfel incat sa fie unic. Acest modalitate de lucru degreveaza programatorul.

Tags: ,



Alte articole si tutoriale:
« »

Oferta limitata eBook gratuit: DUBLEZA-TI VENITUL PRIN CUNOSTINTELE DE IT

Inscrie-te la newsletter si vei primi un eBook gratuit. Vei fi si informat despre ofertele speciale, tutoriale gratis si discount-urile pentru cursurile LEC Academy.

Download ebook
×

Abonare email

Accesul la tutorialele gratuite se face pe baza inscrierii la newsletter. Inscrie-te la newsletter-ul LEC Academy si ai acces la peste 40 de lectii gratuite. Daca doresti, vei fi informat despre ofertele speciale, promotiile si discount-urile pentru cursurile LEC Academy.

Vezi lectii gratis
×