22 lines
3.2 KiB
Markdown
22 lines
3.2 KiB
Markdown
---
|
||
aliases:
|
||
tags:
|
||
- зрелость/🌱
|
||
date:
|
||
- - 2023-11-22
|
||
zero-link:
|
||
- "[[00 Java разработка]]"
|
||
parents:
|
||
- "[[Java Разработка]]"
|
||
linked:
|
||
---
|
||
JDBC (Java Database Connectivity) — это стандартный API, который определяет, как клиент может получить доступ к базе данных. Вот как он работает:
|
||
|
||
1. **Загрузка JDBC драйвера**: Прежде всего, необходимо загрузить JDBC драйвер, который обеспечивает связь между приложением Java и базой данных. Это делается через механизм рефлексии Java (например, `Class.forName("com.mysql.jdbc.Driver")`).
|
||
2. **Установление соединения**: Следующий шаг — установление соединения с базой данных. JDBC API предоставляет класс `DriverManager`, с помощью которого можно получить соединение (`Connection`) с базой данных, используя строку подключения (URL), имя пользователя и пароль.
|
||
3. **Создание запроса**: После установления соединения можно создать объект `Statement` или `PreparedStatement` для выполнения SQL-запросов. `PreparedStatement` используется для выполнения параметризованных запросов, что помогает предотвратить SQL инъекции.
|
||
4. **Выполнение запроса**: Используя объект `Statement` или `PreparedStatement`, можно выполнить SQL-запросы к базе данных. Для запросов, которые возвращают данные (например, SELECT), используется метод `executeQuery()`, который возвращает объект `ResultSet`. Для запросов, которые изменяют данные (например, UPDATE, INSERT, DELETE), используется метод `executeUpdate()`, который возвращает количество измененных строк.
|
||
5. **Обработка результатов**: Если запрос возвращает `ResultSet`, то его можно обработать, используя цикл `while` и методы получения данных (`getString`, `getInt` и т.д.), чтобы получить данные из каждой строки результата.
|
||
6. **Закрытие соединения**: После выполнения необходимых операций с базой данных, важно закрыть `ResultSet`, `Statement` и `Connection`, чтобы освободить ресурсы базы данных и предотвратить утечку памяти.
|
||
|
||
Все это обычно оборачивается в блоки try-catch-finally для обработки исключений и гарантированного закрытия ресурсов, даже если происходит исключение. |