Sobes.tech
Junior

JDBC аз чӣ компонентҳо иборат аст?

sobes.tech AI

Ҷавоб аз AI

JDBC (Java Database Connectivity) аз компонентҳои асосии зерин иборат аст:

  • API JDBC: Ҷамъоварии интерфейсҳо ва синфҳо, ки дар Java навишта шудаанд ва роҳи стандартӣ барои муошират бо базаҳои маълумотро таъмин мекунанд. Ин API-ро таҳиягарон барои навиштани код истифода мебаранд.
  • Менеҷери драйвери JDBC: Синфе, ки драйверҳои гуногуни JDBC-ро идора мекунад. Вай масъул аст, ки драйверҳоро боркуни ва намунаҳои драйверро барои барқарор кардани пайванд бо базаи маълумот таъмин кунад.
  • Драйвери JDBC: Нармафзор, ки интерфейсҳои API JDBC-ро барои системаи идоракунии базаи маълумот (DBMS) иҷро мекунад. Драйверҳои гуногун мавҷуданд:
    • Тип 1 (мост JDBC-ODBC): Зерсохт кардани даъватҳои JDBC ба даъватҳои ODBC. Ин талаб мекунад, ки драйвери ODBC дар тарафҳои муштариён насб карда шавад. Кадим аст.
    • Тип 2 (драйвери API нативӣ): Зерсохт кардани даъватҳои JDBC ба даъватҳои API нативии DBMS. Ин талаб мекунад, ки коди нативии DBMS дар тарафҳои муштариён насб карда шавад.
    • Тип 3 (драйвери протоколи шабакавӣ): Истифодаи сервери миёнаи барномаҳо барои тарҷумаи даъватҳои JDBC ба протоколи DBMS. Ин талаб намекунад, ки коди нативӣ дар тарафҳои муштариён насб карда шавад.
    • Тип 4 (драйвери Java тоза): Навишта шудааст дар 100% Java ва мустақиман даъватҳои JDBC-ро ба протоколи DBMS табдил медиҳад. Ин навъи маъмултарин аст.
  • Барномаии Java: Барнома, ки дар Java навишта шудааст ва API JDBC-ро барои пайваст шудан ба базаи маълумот ва иҷрои амалиётҳо (DML, DDL) истифода мебарад.

Интераксияи байни компонентҳо чунин аст:

  1. Барномаии Java API JDBC-ро барои даъват кардани методҳоро истифода мебарад.
  2. Даъватҳо ба Менеҷери драйвери JDBC интиқол дода мешаванд.
  3. Менеҷери драйвери драйвери мувофиқро барои базаи маълумот муайян ва бор мекунад.
  4. Драйвери JDBC мустақиман бо базаи маълумот тавассути протокол ё API нативӣ (ба вобаста аз навъи драйвер) муошират мекунад.
  5. Натиҷаҳои саволҳо ё маълумоти хато тавассути драйвер, Менеҷери драйвер ва API JDBC ба барномаии Java баргардонида мешаванд.
// Намунаи истифодаи API JDBC дар барномаии Java
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 {
            // Боркунии драйвер (опционалӣ барои версияҳои муосири Java)
            // Class.forName("com.mysql.cj.jdbc.Driver");

            // Гирифтани пайванди тавассути DriverManager
            connection = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/mydatabase", // URL-и базаи маълумот
                    "username", // Номи корбар
                    "password" // Парол
            );

            // Эҷоди Statement барои иҷрои саволҳои SQL
            statement = connection.createStatement();

            // Иҷрои саволи SELECT
            resultSet = statement.executeQuery("SELECT id, name FROM mytable");

            // Коркарди натиҷаҳо
            while (resultSet.next()) {
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                System.out.println("ID: " + id + ", Ном: " + name);
            }

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // Баста кардани захираҳо
            try {
                if (resultSet != null) resultSet.close();
                if (statement != null) statement.close();
                if (connection != null) connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}