Sobes.tech
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:

  1. Java lietojumprogramma izmanto JDBC API, lai izsauktu metodes:
  2. Izsaukumi tiek nodoti JDBC Driver Manager:
  3. Driver Manager atrod un ielādē atbilstošo JDBC draiveri norādītajai datu bāzei:
  4. JDBC draiveris tieši sadarbojas ar datu bāzi, izmantojot tās protokolu vai native API (atkarībā no draivera veida):
  5. 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();
            }
        }
    }
}