Arhitectura JDBC
Explicație:
- Aplicație: Poate fi o aplicație Java sau un servlet care comunică cu o sursă de date.
- API-ul JDBC: Permite programelor Java să execute interogări SQL și să obțină rezultate de la baza de date. Unele componente cheie ale API-ului JDBC includ
- Interfețe precum Driver, ResultSet, RowSet, PreparedStatement și Connection care ajută la gestionarea diferitelor sarcini ale bazei de date.
- Clase precum DriverManager, Types, Blob și Clob care ajută la gestionarea conexiunilor la baza de date.
- DriverManager: Joacă un rol important în arhitectura JDBC. Utilizează anumiți driveri specifici bazei de date pentru a conecta eficient aplicațiile de întreprindere la baze de date.
- Drivere JDBC: Acești driveri gestionează interacțiunile dintre aplicație și baza de date.
Arhitectura JDBC constă din modele de procesare pe două și trei niveluri pentru a accesa o bază de date. Acestea sunt descrise mai jos:
1. Arhitectură pe Două Niveluri (Two-Tier)
O Aplicație Java comunică direct cu baza de date folosind un driver JDBC. Trimite interogări către baza de date, iar apoi rezultatul este trimis înapoi aplicației. De exemplu, într-o configurație client/server, sistemul utilizatorului acționează ca un client care comunică cu un server de baze de date la distanță.
Structură:
Aplicație Client (Java) -> Driver JDBC -> Bază de Date
2. Arhitectură pe Trei Niveluri (Three-Tier)
În aceasta, interogările utilizatorilor sunt trimise către servicii de nivel intermediar, care interacționează cu baza de date. Rezultatele bazei de date sunt procesate de nivelul intermediar și apoi trimise înapoi utilizatorului.
Structură:
Aplicație Client -> Server de Aplicații -> Driver JDBC -> Bază de Date
Componentele JDBC
Există în general 4 componente principale ale JDBC prin care poate interacționa cu o bază de date. Acestea sunt menționate mai jos:
1. API JDBC
Oferă diverse metode și interfețe pentru comunicarea ușoară cu baza de date. Include două pachete cheie
- java.sql: Acest pachet, parte a Java Standard Edition (Java SE) , care conține interfețele și clasele de bază pentru accesarea și procesarea datelor în bazele de date relaționale. Oferă, de asemenea, funcționalități esențiale precum stabilirea conexiunilor, executarea interogărilor și gestionarea seturilor de rezultate.
- javax.sql: Acest pachet este parte a Java Enterprise Edition (Java EE) , care extinde capabilitățile
java.sqloferind funcții suplimentare precum gruparea conexiunilor (connection pooling), gruparea instrucțiunilor (statement pooling) și gestionarea surselor de date.
Oferă, de asemenea, un standard pentru conectarea unei baze de date la o aplicație client.
2. JDBC Driver Manager
Managerul de drivere este responsabil pentru încărcarea driverului corect specific bazei de date pentru a stabili o conexiune cu baza de date. Gestionează driverele disponibile și asigură utilizarea celui corect pentru a procesa cererile utilizatorilor și a interacționa cu baza de date.
3. Suita de Teste JDBC
Este utilizată pentru a testa operațiile (cum ar fi inserarea, ștergerea, actualizarea) efectuate de Driverele JDBC.
4. Drivere JDBC
Driverele JDBC sunt adaptoare pe partea client (instalate pe mașina client, nu pe server) care convertesc cererile din programele Java într-un protocol pe care DBMS-ul îl poate înțelege. Există 4 tipuri de drivere JDBC:
- Driver de tip 1 sau driver bridge JDBC-ODBC
- Driver de tip 2 sau driver Native-API (parțial driver Java)
- Driver de tip 3 sau driver de Protocol de Rețea (complet driver Java)
- Driver de tip 4 sau driver Subțire (Thin driver – complet driver Java) – Este un driver utilizat pe scară largă. Driverele mai vechi precum driverul bridge (JDBC-ODBC) au fost depreciate și nu mai sunt suportate în versiunile moderne de Java.
Clase și Interfețe JDBC
| Clasă/Interfață | Descriere |
|---|---|
| DriverManager | Gestionează driverele JDBC și stabilește conexiuni la baza de date. |
| Connection | Reprezintă o sesiune cu o bază de date specifică. |
| Statement | Utilizat pentru a executa interogări SQL statice. |
| PreparedStatement | Instrucțiune SQL precompilată, utilizată pentru interogări dinamice cu parametri. |
| CallableStatement | Utilizat pentru a executa proceduri stocate în baza de date. |
| ResultSet | Reprezintă setul de rezultate al unei interogări, permițând navigarea prin rânduri. |
| SQLException | Gestionează excepțiile legate de SQL în timpul operațiilor cu baza de date. |
Pași pentru Conectarea la Baza de Date MySQL folosind JDBC
Pasul 1: Încărcați Driverul JDBC
Class.forName(“com.mysql.cj.jdbc.Driver”);
Pasul 2: Stabiliți o Conexiune
Connection connection = DriverManager.getConnection(
“jdbc:mysql://localhost:3306/your_database”,
“your_username”,
“your_password”
);
Pasul 3: Creați o Instrucțiune (Statement)
Statement statement = connection.createStatement();
Pasul 4: Executați o Interogare
String query = “INSERT INTO students (id, name) VALUES (101, ‘John Doe’)”;
int rowsAffected = statement.executeUpdate(query);
System.out.println(“Rânduri afectate: ” + rowsAffected);
Pasul 5: Închideți Conexiunea
statement.close();
connection.close();
Creați o Aplicație JDBC Simplă
Programul Java de mai jos demonstrează cum să stabiliți o conexiune la baza de date MYSQL folosind JDBC și să executați o interogare.
// Program Java pentru a implementa o aplicație JDBC simplă
import java.sql.*;
public class Geeks {
public static void main(String[] args)
{
// URL bază de date, nume utilizator și parolă
// Înlocuiți cu numele bazei dvs. de date
String url
= "jdbc:mysql://localhost:3306/your_database";
// Înlocuiți cu numele dvs. de utilizator MySQL
String username = "your_username";
// Înlocuiți cu parola dvs. MySQL
String password = "your_password";
// Sintaxă interogare actualizată pentru baze de date moderne
String query
= "INSERT INTO students (id, name) VALUES (109, 'bhatt')";
// Stabiliți Conexiunea JDBC
try {
// Încărcați Driverul de Tip 4
// Clasa driver MySQL de Tip 4
Class.forName("com.mysql.cj.jdbc.Driver");
// Stabiliți conexiunea
Connection c = DriverManager.getConnection(
url, username, password);
// Creați o instrucțiune
Statement st = c.createStatement();
// Executați interogarea
int count = st.executeUpdate(query);
System.out.println(
"Numărul de rânduri afectate de această interogare: "
+ count);
// Închideți conexiunea
st.close();
c.close();
System.out.println("Conexiune închisă.");
}
catch (ClassNotFoundException e) {
System.err.println("Driver JDBC negăsit: "
+ e.getMessage());
}
catch (SQLException e) {
System.err.println("Eroare SQL: "
+ e.getMessage());
}
}
}
Output:
Notă: Când programul rulează cu succes, o nouă înregistrare este adăugată la tabela students, așa cum se arată mai jos:
Caracteristici Cheie ale JDBC:
- Independență de Platformă: JDBC poate efectua operații cu baze de date pe orice platformă.
- API Standard: Oferă diferite moduri de a interacționa cu diferite baze de date.
- Suport pentru Baze de Date Multiple: JDBC oferă suport pentru a lucra cu diferite baze de date precum MySQL, PostgreSQL, Oracle etc.





