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