🤔
Из каких частей стоит JDBC? Состоит из нескольких ключевых компонентов, которые вместе обеспечивают возможность взаимодействия Java-приложений с различными базами данных. Эти компоненты включают в себя интерфейсы, классы и методы, необходимые для выполнения SQL-запросов, управления соединениями и обработки результатов.
🚩
Компоненты 🟠
JDBC DriverJDBC-драйверы обеспечивают связь между Java-приложением и базой данных. Каждый драйвер реализует интерфейсы, определенные в JDBC API, и отвечает за преобразование вызовов Java-методов в команды, понятные конкретной СУБД.
Type 1 (JDBC-ODBC Bridge Driver): Использует мост для взаимодействия с ODBC-драйверами. Устарел и редко используется.
Type 2 (Native-API Driver): Преобразует вызовы JDBC в вызовы API, зависящие от платформы. Требует нативных библиотек.
Type 3 (Network Protocol Driver): Преобразует вызовы JDBC в сетевые протоколы, которые сервер преобразует в вызовы СУБД.
Type 4 (Thin Driver): Преобразует вызовы JDBC непосредственно в сетевые протоколы СУБД. Наиболее распространенный тип.
🟠
DriverManagerКласс
DriverManager управляет набором зарегистрированных драйверов и предоставляет методы для получения соединений с базой данных. Он выбирает подходящий драйвер на основе JDBC URL.
getConnection(String url): Устанавливает соединение с базой данных, используя указанный URL.
getConnection(String url, String user, String password): Устанавливает соединение с указанием имени пользователя и пароля.
🟠
ConnectionИнтерфейс
Connection представляет собой соединение с конкретной базой данных. Он предоставляет методы для создания SQL-запросов, управления транзакциями и закрытия соединения.
createStatement(): Создает объект
Statement для выполнения SQL-запросов.
prepareStatement(String sql): Создает объект
PreparedStatement для выполнения параметризованных SQL-запросов.
setAutoCommit(boolean autoCommit): Управляет автоматической фиксацией транзакций.
commit(): Фиксирует текущую транзакцию.
rollback(): Откатывает текущую транзакцию.
close(): Закрывает соединение с базой данных.
🟠
StatementИнтерфейс
Statement используется для выполнения статических SQL-запросов и получения их результатов. Он также предоставляет методы для выполнения обновлений данных.
executeQuery(String sql): Выполняет SQL-запрос и возвращает объект
ResultSet.
executeUpdate(String sql): Выполняет SQL-запрос и возвращает количество затронутых строк.
execute(String sql): Выполняет SQL-запрос, который может вернуть несколько результатов.
🟠
PreparedStatementИнтерфейс
PreparedStatement расширяет
Statement и используется для выполнения предварительно скомпилированных SQL-запросов с параметрами. Это помогает избежать SQL-инъекций и повышает производительность при многократном выполнении одного и того же запроса.
setInt(int parameterIndex, int value): Устанавливает значение параметра типа
int.
setString(int parameterIndex, String value): Устанавливает значение параметра типа
String.
executeQuery(): Выполняет параметризованный SQL-запрос и возвращает объект
ResultSet.
executeUpdate(): Выполняет параметризованный SQL-запрос и возвращает количество затронутых строк.
Ставь 👍 и забирай 📚 Базу знаний