Junior
Iš kokių komponentų sudarytas JDBC?
sobes.tech AI
Atsakymas iš AI
JDBC (Java Database Connectivity) sudaro šie pagrindiniai komponentai:
- JDBC API: Java parašytas sąsajų ir klasių rinkinys, kuris suteikia standartinį būdą sąveikauti su įvairiomis duomenų bazėmis. Šis API naudojamas kūrėjų kodui rašyti:
- JDBC Driver Manager: Klasė, valdanti įvairius JDBC tvarkyklės. Ji atsakinga už tvarkyklės įkėlimą ir tvarkyklės egzempliorių teikimą, kad būtų galima užmegzti ryšį su duomenų baze:
- JDBC Driver: Programinė įranga, įgyvendinanti JDBC API sąsajas konkrečiai duomenų bazės valdymo sistemai (DBVS). Yra įvairių JDBC tvarkyklės tipų:
- Type 1 (JDBC-ODBC tilto tvarkyklė): Konvertuoja JDBC iškvietimus į ODBC iškvietimus. Reikalauja ODBC tvarkyklės įdiegimo kliento pusėje. Pasenusi:
- Type 2 (Native-API tvarkyklė): Konvertuoja JDBC iškvietimus į natūralų API iškvietimus. Reikalauja kliento pusėje įdiegti natūralų kodą:
- Type 3 (Tinklo protokolo tvarkyklė): Naudoja tarpinį serverį, kuris verčia JDBC iškvietimus į duomenų bazės protokolą. Nereikalauja įdiegti natūralaus kodo kliento pusėje:
- Type 4 (Pure Java tvarkyklė): Parašyta visiškai Java ir tiesiogiai verčia JDBC iškvietimus į duomenų bazės protokolą. Dažniausiai naudojamas:
- Java taikymas: Java parašyta programa, kuri naudoja JDBC API prisijungti prie duomenų bazės ir vykdyti operacijas (DML, DDL):
Komponentų sąveika vyksta taip:
- Java taikymas naudoja JDBC API iškviesti metodus:
- Iškvietimai perduodami į JDBC Driver Manager:
- Driver Manager suranda ir įkelia tinkamą JDBC tvarkyklę nurodytai duomenų bazei:
- JDBC tvarkyklė tiesiogiai sąveikauja su duomenų baze, naudodama jos protokolą arba natūralų API (priklausomai nuo tvarkyklės tipo):
- Rezultatai arba klaidų informacija grąžinama per tvarkyklę, Driver Manager ir JDBC API atgal į Java taikymą:
// JDBC API naudojimo pavyzdys Java taikymo programoje
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 {
// Tvarkyklės įkėlimas (šiuolaikinėse Java versijose nebūtina)
// Class.forName("com.mysql.cj.jdbc.Driver");
// Prisijungimas per Driver Manager
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mydatabase", // Duomenų bazės URL
"username", // Vartotojo vardas
"password" // Slaptažodis
);
// Sukurti Statement vykdyti SQL užklausas
statement = connection.createStatement();
// Vykdyti SELECT užklausą
resultSet = statement.executeQuery("SELECT id, name FROM mytable");
// Apdoroti rezultatus
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 {
// Uždaryti išteklius
try {
if (resultSet != null) resultSet.close();
if (statement != null) statement.close();
if (connection != null) connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}