Lucrul cu baza de date prin jdbc

JDBC oferă aplicații java cu un mod standard de accesare a datelor stocate în baza de date. Pentru ca infrastructura JDBC să funcționeze cu baza de date, aveți nevoie de un driver specific bazei de date.






În primul rând, acest driver este încărcat în memorie, apoi este înregistrat utilizând clasa java.sql.DriverManager. Clasa java.sql.DriverManager gestionează lista driverelor și oferă metode statice pentru stabilirea unei conexiuni la baza de date.
Metoda statică getConnection () din clasa java.sql.DriverManager returnează implementarea interfeței java.sql.Connection, care este furnizată de driver. Această interfață vă permite să executați instrucțiuni SQL pentru orice bază de date (în acest caz, pentru cea pentru care este înregistrat driverul).
În acest post, vom analiza interacțiunea cu baza de date prin JDBC pur. Deoarece conexiunea la baza de date prin JDBC este costisitoare, în plus față de fiecare interogare a bazei de date va fi creată o nouă conexiune, versiunea aplicației la baza de date prezentată în acest post nu este soluția corectă, sensul aici este că, la locul de muncă, cu un date JDBC prin net pentru a avea o idee despre ce sunt luate măsuri pentru a controla conexiunea JDBC. pentru că în proiectele convenționale nu trebuie să lucreze direct cu JDBC pe, și în următorul post, ia în considerare o modalitate mai bună, de exemplu, printr-un bazin de conexiune.

Articole similare

Structura bazei de date Warehouse

Schema bazei de date

Relația dintre entitate sau relația ER-relație:

Script SQL pentru crearea unui model simplu de date:

creați-date-model.sql

Script SQL pentru umplerea datelor:

umple-database.sql

Pentru a crea rapid o bază de date și ao completa cu date, trebuie să executați succesiv scripturile create-data-model.sql și fill-database.sql.
Deschideți linia de comandă și introduceți:

După ce aceste script-uri sunt executate, baza de date arătată mai jos trebuie creată:

Structura proiectului

Clasele domeniului. Pachet com.dev.blogs.model

Provider.java

Warehouse.java

Pachet com.dev.blogs.dao - nivel de acces la date.
Să adăugăm interfețe Dao. care încapsulează toate serviciile de acces la date pentru informații despre depozit. Aceste interfețe definesc toate metodele care sunt combinate în termenii CRUD (Creare, citire, actualizare, ștergere) - crearea, citirea, actualizarea și ștergerea.







ItemDao.java

WarehouseDao.java

Pachetul com.dev.blogs.dao.impl
Implementarea de interfețe care furnizează servicii de acces la date.

ItemDaoImpl.java

WarehouseDaoImpl.java

Dezavantajul acestui cod este acela că pentru a interacționa cu o bază de date printr-un JDBC pur, trebuie să creați o nouă conexiune de bază de date de fiecare dată când accesați. Acest lucru este foarte scump, deoarece stabilirea unui nou proces de conectare este costisitoare.

PreparedStatement

În acest exemplu, pentru interogări folosim clasa PreparedStatement pe care aș dori să rămân puțin mai detaliată. În primul rând, de ce luăm această clasă specială, deoarece există încă clase și clase CallableStatement pentru executarea interogării.
Pe scurt, clasa PreparedStatement accelerează procesarea cererilor în comparație cu declarația. Acum cum o face el.

Pachetul com.dev.blogs
clasa DataSource împachetări clasa java.sql.DriverManager și returnează o conexiune bază de date într-o clasă implementeaza interfata java.sql.Connection. De fapt, gestionează conexiunea la baza de date. În locul acesta ar putea fi folosit org.springframework.jdbc.datasource.DriverManagerDataSource clasa springovy. care face același lucru, dar am decis să folosească clasa mea pentru a înțelege mai bine cum să pună în aplicare surse de date springovye, doar diferența dintre biblioteca mea de clasă din faptul că nu am realizat interfața javax.sql.DataSource și nu a aderat la nici convenții sau așa nume metodele mele vor fi diferite de metodele claselor de bibliotecă. De asemenea, în locul este posibil și chiar necesar să se utilizeze o clasă care org.apache.commons.dbcp.BasicDataSource disponibil în Apache sau sursă de date de clasă, realizat unul dintre serverele de aplicații, cum ar fi JBoss. WebSphere. WebLogic. GlassFish, etc., care pot spori performanța aplicației.

DataSource.java

Pentru această fasole, nu specificăm adnotarea componentei. și noi l declarăm în fișierul de configurare, astfel încât să nu vrem doar pentru a crea un coș, și trebuie să-l configurați, și atunci când este vorba de configurația fasole, cel mai bine este să-l configurați într-o configurare separat.

TestSimpleJdbc.java

spring-context.xml

jdbc.properties

Construiți și alergați

Pentru a începe proiectul, adăugați dependența mysql-connector-java (linii 35-39):

Acum începeți proiectul. Deoarece avem doar teste, vom face teste. Deschideți un prompt de comandă și tastați:

Rezultatul executării testelor ar trebui să fie Teste executate: 2, Defecțiuni: 0, Erori: 0, Omis: 0.

Dezavantaje ale JDBC

Dezavantajul evident al utilizării JCDB pe lângă faptul că nu salvează resursele bazei de date este că trebuie să repetați același cod.
Când am pregătit codul pentru acest exemplu, am adăugat mai întâi logica accesului la date în clasa WarehouseDaoImpl.java. și apoi am avut de a face același lucru în clasa ItemDaoImpl.java. adică, a trebuit să rescriu aceeași logică de două ori pentru stratul DAO. Nu toată lumea are răbdarea să repete același cod în fiecare clasă DAO. Prin urmare, în următorul post, vom examina un exemplu de acces la date prin primăvară. care preia toate activitățile oficiale.







Articole similare

Trimiteți-le prietenilor: