Junior
Z akých komponentov sa skladá JDBC?
sobes.tech AI
Odpoveď od AI
JDBC (Java Database Connectivity) pozostáva z nasledujúcich hlavných komponentov:
- JDBC API: Súbor rozhraní a tried napísaných v Jave, ktoré poskytujú štandardný spôsob interakcie s rôznymi databázami. Tento API používajú vývojári na písanie kódu.
- Správca ovládačov JDBC: Trieda, ktorá spravuje rôzne ovládače JDBC. Je zodpovedná za načítanie ovládačov a poskytovanie inštancií ovládača na nadviazanie spojenia s databázou.
- Ovládač JDBC: Softvér, ktorý implementuje rozhrania API JDBC pre konkrétny systém správy databáz (DBMS). Existujú rôzne typy ovládačov JDBC:
- Typ 1 (JDBC-ODBC most): Prevod volaní JDBC na volania ODBC. Vyžaduje inštaláciu ODBC ovládača na strane klienta. Zastaralý.
- Typ 2 (Native-API ovládač): Prevod volaní JDBC na volania nativného API DBMS. Vyžaduje inštaláciu nativneho kódu DBMS na strane klienta.
- Typ 3 (Sieťový protokol ovládač): Používa sprostredkovateľský server aplikácií na preklad volaní JDBC do protokolu DBMS. Nevyžaduje inštaláciu nativneho kódu na klientovi.
- Typ 4 (Čistý Java ovládač): Napísaný úplne v Jave a priamo prekladá volania JDBC do protokolu DBMS. Najrozšírenejší typ.
- Java aplikácia: Aplikácia napísaná v Jave, ktorá používa JDBC API na pripojenie k databáze a vykonávanie operácií (DML, DDL).
Interakcia medzi komponentmi prebieha nasledovne:
- Java aplikácia používa JDBC API na volanie metód.
- Volania sú odovzdávané správcu ovládačov JDBC.
- Správca ovládačov nájde a načíta príslušný ovládač JDBC pre špecifikovanú databázu.
- Ovládač JDBC priamo komunikuje s databázou pomocou jej protokolu alebo nativného API (v závislosti od typu ovládača).
- Výsledky dotazov alebo informácie o chybách sú vrátené cez ovládač, správcu ovládačov a JDBC API späť do Java aplikácie.
// Príklad použitia JDBC API v Java aplikácii
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
public class JdbcExample {
public static void main(String[] args) {
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
// Načítanie ovládača (voliteľné pre moderné verzie Javy)
// Class.forName("com.mysql.cj.jdbc.Driver");
// Získanie spojenia cez DriverManager
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mydatabase", // URL databázy
"username", // Používateľské meno
"password" // Heslo
);
// Vytvorenie Statementu na vykonanie SQL dopytov
statement = connection.createStatement();
// Vykonanie SELECT dopytu
resultSet = statement.executeQuery("SELECT id, name FROM mytable");
// Spracovanie výsledkov
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("ID: " + id + ", Meno: " + name);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// Zatvorenie zdrojov
try {
if (resultSet != null) resultSet.close();
if (statement != null) statement.close();
if (connection != null) connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}