Junior
Millest koosneb JDBC?
sobes.tech AI
Vastus AI-lt
JDBC (Java Database Connectivity) koosneb järgmistest põhikomponentidest:
- JDBC API: Java-s kirjutatud liidesed ja klassid, mis pakuvad standardset viisi erinevate andmebaasidega suhtlemiseks. Seda API-d kasutavad arendajad koodi kirjutamiseks:
- JDBC Driver Manager: Klass, mis haldab erinevaid JDBC draivereid. See vastutab draiverite laadimise ja draiveri eksemplaride pakkumise eest andmebaasi ühenduse loomiseks:
- JDBC Driver: Tarkvara, mis rakendab JDBC API liideseid konkreetse andmebaasisüsteemi (DBMS) jaoks. On olemas erinevat tüüpi JDBC draivereid:
- Type 1 (JDBC-ODBC sild draiver): Muudab JDBC kutse ODBC kutseteks. Nõuab ODBC draiveri paigaldamist kliendi poolel. Vananenud:
- Type 2 (Native-API draiver): Muudab JDBC kutse native API kutseteks. Nõuab native koodi paigaldamist kliendi poolel:
- Type 3 (Võrgu-protokolli draiver): Kasutab vahendusteenust, mis tõlgib JDBC kutse andmebaasi protokolliks. Ei nõua native koodi paigaldamist kliendi poolel:
- Type 4 (Puhas Java draiver): Kirjutatud 100% Java-s ja otse tõlgib JDBC kutse andmebaasi protokolliks. Kõige levinum:
- Java rakendus: Java-s kirjutatud programm, mis kasutab JDBC API-d andmebaasi ühendamiseks ja operatsioonide (DML, DDL) tegemiseks:
Komponentide vaheline suhtlus toimub järgmiselt:
- Java rakendus kasutab JDBC API-d meetodite väljakutseteks:
- Väljakutsed edastatakse JDBC Driver Managerile:
- Driver Manager leiab ja laadib sobiva JDBC draiveri määratud andmebaasi jaoks:
- JDBC draiver suhtleb otse andmebaasiga, kasutades selle protokolli või native API-d (sõltuvalt draiveri tüübist):
- Tulemused või veateated tagastatakse draiveri, Driver Manageri ja JDBC API kaudu tagasi Java rakendusele:
// JDBC API kasutamise näide Java rakenduses
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 {
// Draiveri laadimine (kaasaegsetes Java versioonides pole see kohustuslik)
// Class.forName("com.mysql.cj.jdbc.Driver");
// Ühenduse loomine Driver Manageri kaudu
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mydatabase", // Andmebaasi URL
"username", // Kasutajanimi
"password" // Parool
);
// Statementi loomine SQL-küsimuste täitmiseks
statement = connection.createStatement();
// SELECT-küsimuse täitmine
resultSet = statement.executeQuery("SELECT id, name FROM mytable");
// Tulemuste töötlemine
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 {
// Ressursside sulgemine
try {
if (resultSet != null) resultSet.close();
if (statement != null) statement.close();
if (connection != null) connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}