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) истифода мебарад.
Интераксияи байни компонентҳо чунин аст:
- Барномаии Java API JDBC-ро барои даъват кардани методҳоро истифода мебарад.
- Даъватҳо ба Менеҷери драйвери JDBC интиқол дода мешаванд.
- Менеҷери драйвери драйвери мувофиқро барои базаи маълумот муайян ва бор мекунад.
- Драйвери JDBC мустақиман бо базаи маълумот тавассути протокол ё API нативӣ (ба вобаста аз навъи драйвер) муошират мекунад.
- Натиҷаҳои саволҳо ё маълумоти хато тавассути драйвер, Менеҷери драйвер ва 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();
}
}
}
}