digital-garden/knowledge/dev/java/other/JDBC.md
2024-06-13 21:01:37 +03:00

22 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 для обработки исключений и гарантированного закрытия ресурсов, даже если происходит исключение.