Junior
No kādiem komponentiem sastāv JDBC?
sobes.tech AI
Atbilde no AI
JDBC (Java Database Connectivity) sastāv no šādiem galvenajiem komponentiem:
- JDBC API: Java rakstīts interfeisu un klases kopums, kas nodrošina standarta veidu, kā sadarboties ar dažādām datu bāzēm. Šis API tiek izmantots izstrādātāju kodu rakstīšanai:
- JDBC Driver Manager: Klase, kas pārvalda dažādus JDBC draiverus. Tā ir atbildīga par draiveru ielādi un draivera eksemplāru nodrošināšanu, lai izveidotu savienojumu ar datu bāzi:
- JDBC Driver: Programmatūra, kas īsteno JDBC API interfeisus konkrētai datu bāzes pārvaldības sistēmai (DBMS). Pastāv dažādi JDBC draiveru tipi:
- Type 1 (JDBC-ODBC tilta draiveris): Pārvērš JDBC izsaukumus ODBC izsaukumos. Prasa ODBC draivera uzstādīšanu klienta pusē. Novecojis:
- Type 2 (Native-API draiveris): Pārvērš JDBC izsaukumus native API izsaukumos. Prasa klienta pusē uzstādīt native kodu:
- Type 3 (Tīkla protokola draiveris): Izmanto starpniekserveri, kas tulko JDBC izsaukumus uz datu bāzes protokolu. Nereikalē native koda uzstādīšanu klienta pusē:
- Type 4 (Pure Java draiveris): Rakstīts pilnībā Java un tieši pārvērš JDBC izsaukumus uz datu bāzes protokolu. Visbiežāk izmantotais:
- Java lietojumprogramma: Java rakstīta programma, kas izmanto JDBC API, lai pieslēgtos datu bāzei un veiktu operācijas (DML, DDL):
Komponentu savstarpējā mijiedarbība notiek šādi:
- Java lietojumprogramma izmanto JDBC API, lai izsauktu metodes:
- Izsaukumi tiek nodoti JDBC Driver Manager:
- Driver Manager atrod un ielādē atbilstošo JDBC draiveri norādītajai datu bāzei:
- JDBC draiveris tieši sadarbojas ar datu bāzi, izmantojot tās protokolu vai native API (atkarībā no draivera veida):
- Rezultāti vai kļūdu informācija tiek atgriezta caur draiveri, Driver Manager un JDBC API atpakaļ Java lietojumprogrammai:
// JDBC API izmantošanas piemērs Java lietojumprogrammā
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 {
// Draivera ielāde (mūsdienu Java versijās nav obligāta)
// Class.forName("com.mysql.cj.jdbc.Driver");
// Savienojuma izveide caur Driver Manager
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mydatabase", // Datu bāzes URL
"username", // Lietotājvārds
"password" // Parole
);
// Izveidot Statement, lai izpildītu SQL vaicājumus
statement = connection.createStatement();
// Izpildīt SELECT vaicājumu
resultSet = statement.executeQuery("SELECT id, name FROM mytable");
// Apstrādāt rezultātus
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("ID: " + id + ", Name: " + name);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// Resursu aizvēršana
try {
if (resultSet != null) resultSet.close();
if (statement != null) statement.close();
if (connection != null) connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}