Ответ
Имею практический опыт работы с JDBC (Java Database Connectivity) — низкоуровневым Java API для взаимодействия с реляционными базами данных. Он предоставляет стандартный интерфейс для выполнения SQL-запросов, обработки результатов и управления транзакциями.
Основные операции, которые выполнял:
- Установка соединения: Использование
DriverManagerилиDataSource(предпочтительнее) для полученияConnection. - Выполнение запросов: Работа с
Statement,PreparedStatement(для параметризованных запросов, защищает от SQL-инъекций) иCallableStatement(для хранимых процедур). - Обработка результатов: Итерация по
ResultSetдля извлечения данных. - Управление транзакциями: Явный контроль с помощью
commit()иrollback(), настройка уровней изоляции. - Работа с метаданными: Использование
DatabaseMetaDataиResultSetMetaData.
Пример подключения к PostgreSQL и выполнения запроса:
// Использование try-with-resources для автоматического закрытия ресурсов
String url = "jdbc:postgresql://localhost:5432/mydb";
String sql = "SELECT id, name FROM users WHERE active = ?";
try (Connection conn = DriverManager.getConnection(url, "user", "pass");
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setBoolean(1, true); // Установка параметра
try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
System.out.printf("ID: %d, Name: %s%n", id, name);
}
}
} catch (SQLException e) {
// Обработка ошибок (логирование, проброс исключения)
e.printStackTrace();
}
Для production-приложений: использовал пулы соединений (HikariCP — самый быстрый) для эффективного управления подключениями и фреймворки более высокого уровня, такие как Spring Data JPA или MyBatis, которые абстрагируют рутинную работу с JDBC.