Conectivitate la baza de date Java

Cunoașteți elementele de bază ale SQL. Asta e bine. Dar astăzi te vei simți și mai bine. Astăzi veți începe să învățați cum să lucrați cu o bază de date dintr-o aplicație Java.

Există o mulțime de SGBD diferite, așa că creatorii Java au decis să standardizeze modul în care o aplicație Java funcționează cu bazele de date. Și au numit acest standard - JDBC : Java DataBase Connectivity .

JDBC are 3 interfețe principale:

  • Conexiune - responsabil pentru conectarea la baza de date
  • Declarație - responsabil pentru interogarea bazei de date
  • ResultSet - responsabil pentru rezultatul interogării la baza de date

De fapt, asta-i tot. Și nici măcar nu vom învăța toate metodele tuturor interfețelor. Doar exemple de lucru, pe care le vom complica treptat.

JDBC este oarecum similar cu lucrul cu servlet-uri. Creatorii JDBC au scris mai multe interfețe și le numesc cu mândrie API-ul Java DataBase. Iar implementarea acestor interfețe a fost atribuită... creatorilor SGBD. Cum este implementat acolo - nimănui nu-i pasă. Merge bine.

Există patru versiuni de JDBC și ne vom uita la cea mai recentă. Și nu pentru că este cea mai tare, ci pentru că este cea mai simplă.

Manager de drivere JDBC

Aplicația Java și baza de date comunică între ele printr-o bibliotecă numită driver JDBC. Acesta este un set de clase care implementează API-ul JDBC pentru un anumit SGBD.

Driverul JDBC corect este selectat folosind o clasă numită DriverManager . Interacțiunea lor poate fi reprezentată astfel:

Chestia este că puteți utiliza In-Memory-DB, No-SQL-DB sau chiar o bază de date încorporată într-o aplicație Android. În calitate de dezvoltator Java, aceste nuanțe nu vă preocupă deloc. Managerul de drivere va selecta driverul JDBC corect pentru dvs. și totul va funcționa ca un ceas.

Apropo, cum o face?

Conectarea la serverul MySQL

Vă amintiți de ce aveți nevoie pentru a vă conecta la un server SQL local prin MySQL Workbench? Dacă am uitat, atunci îți reamintesc că aveai nevoie de trei lucruri:

  • gazdă
  • log in
  • parola

Totul este clar cu login și parola, iar gazda, dacă vă amintiți, este numele computerului pe care se află serverul. Dacă se află pe computerul dvs. local, atunci trebuie să specificați localhost ca nume de gazdă. Dacă nu este local?

Apoi trebuie să utilizați... URL. URL înseamnă Universal Resource Locator . Poate fi folosit pentru a specifica locația oricărui lucru din rețea: un site, o imprimantă, un server SQL. De fapt, URL-ul este folosit și pentru a accesa serverul SQL local. Arata cam asa:

mysql://localhost:3306/db_scheme
  • mysql este un protocol de server
  • localhost - nume de gazdă în rețea
  • 3306 - portul pe care se fac cererile
  • db_scheme - numele schemei (numele bazei de date)

Notă. Numele bazei de date poate fi omis. Dar dacă serverul stochează multe scheme de baze de date, atunci de obicei sunt creați utilizatori diferiți și drepturi de acces diferite pentru ei. Și dacă utilizatorul sub care vă conectați la serverul SQL nu are acces la toate bazele de date, atunci trebuie neapărat să specificați numele bazei de date specifice la care aveți acces.

La sfârșitul acestei adrese URL pot fi diferiți parametri, tipuri de codare, fus orar, care sunt considerați parametri pentru noua conexiune la baza de date în curs de stabilire.

De asemenea, protocolul poate fi compus. Dacă toată comunicarea cu serverul bazei de date se face pe un canal criptat folosind protocolul SSH, atunci URL-ul poate fi specificat astfel:

ssh:mysql://localhost:3306/db_scheme

Un protocol nu este neapărat un program extern. De exemplu, dacă lucrați cu un server folosind protocolul JNDI, îl puteți specifica astfel:

jndi:mysql://localhost:3306/db_scheme

Și dacă doriți să lucrați folosind protocolul API JDBC, atunci trebuie să scrieți astfel:

jdbc:mysql://localhost:3306/db_scheme

Când încercați să creați o conexiune la baza de date, JDBC Driver Manager analizează SQL-db-URL-ul dvs. și determină numele driverului JDBC din numele protocolului. Iată un astfel de truc mic.