JDBC (Java Database Connectivity)

JDBC este un API care ajută aplicațiile să comunice cu bazele de date, permițând programelor Java să se conecteze la o bază de date, să ruleze interogări, să recupereze și să manipuleze date. Datorită JDBC, aplicațiile Java pot lucra cu ușurință cu diferite baze de date relaționale precum MySQL, Oracle, PostgreSQL și altele.

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.sql oferind 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:

  1. Driver de tip 1 sau driver bridge JDBC-ODBC
  2. Driver de tip 2 sau driver Native-API (parțial driver Java)
  3. Driver de tip 3 sau driver de Protocol de Rețea (complet driver Java)
  4. 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.

Java
// 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.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top