Sobes.tech
Junior

Ի՞նչ բաղադրիչներից է բաղկացած JDBC-ն։

sobes.tech AI

Պատասխան AI-ից

JDBC (Java Database Connectivity) բաղկացած է հետևյալ հիմնական բաղադրիչներից:

  • JDBC API: Java-ով գրված ինտերֆեյսների և դասերի հավաքածու, որը տրամադրում է ստանդարտ միջոցներ տարբեր տվյալների բազաների հետ շփվելու համար: Այս API-ն օգտագործվում է ծրագրավորողների կողմից կոդ գրելիս:
  • JDBC Driver Manager: Դրայվերների կառավարիչ դաս, որը կառավարում է տարբեր JDBC драйվերները: Այն պատասխանատու է драйվերների բեռնումը և տվյալների բազայի կապ հաստատելու համար драйվերի օրինակների տրամադրումը:
  • JDBC Driver: Ծրագրային ապահովում, որը իրականացնում է JDBC API ինտերֆեյսները կոնկրետ տվյալների բազայի կառավարման համակարգի (ՏԲԿ) համար: Կան տարբեր JDBC драйվերների տեսակներ՝
    • Type 1 (JDBC-ODBC կամուրջ драйվեր): Փոխում է JDBC կանչերը ODBC կանչերի: Պահանջում է ODBC-դրայվերի տեղադրում հաճախորդի կողմից: Հնացած:
    • Type 2 (Native-API драйվեր): Փոխում է JDBC կանչերը native API կանչերի: Պահանջում է native կոդի տեղադրում հաճախորդի կողմից:
    • Type 3 (Network-Protocol драйվեր): Օգտագործում է միջնորդային սերվեր՝ JDBC կանչերը փոխարկելու համար ՏԲԿ պրոտոկոլին: Չպահանջում native կոդի տեղադրում:
    • Type 4 (Pure Java драйվեր): Գրված է 100% Java-ով և անմիջապես փոխարկում է JDBC կանչերը ՏԲԿ պրոտոկոլին: Ամենատարածված տեսակ:
  • Java հավելված: Java-ով գրված ծրագիր, որը օգտագործում է JDBC API՝ կապ հաստատելու և գործողություններ կատարելու համար (DML, DDL):

Բաղադրիչների փոխազդեցությունը հետևյալ կերպ է տեղի ունենում:

  1. Java հավելվածը օգտագործում է JDBC API՝ մեթոդներ կանչելու համար:
  2. Կանչերը փոխանցվում են JDBC Driver Manager-ին:
  3. Driver Manager-ը գտնում և բեռնում է համապատասխան JDBC драйվերը նշված ՏԲԿ-ի համար:
  4. JDBC Driver-ը անմիջապես շփվում է տվյալների բազայի հետ՝ օգտագործելով նրա պրոտոկոլը կամ native API-ն (դրա տեսակից կախված):
  5. Հարցումների արդյունքները կամ սխալի մասին տեղեկությունները վերադարձվում են драйվերի միջոցով, Driver Manager-ի և JDBC API-ի միջոցով՝ Java հավելվածին:
// Օրինակ՝ JDBC API-ի օգտագործում 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");

            // Կապ հաստատում Driver Manager-ի միջոցով
            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: " + name);
            }

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // Կապիտալացվում են ռեսուրսները finally բլոկում
            try {
                if (resultSet != null) resultSet.close();
                if (statement != null) statement.close();
                if (connection != null) connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}