Лекция 2: Подключение базы данных к Java с помощью JDBC
В рамках данной лекции будет рассмотрена технология JDBC (Java Database Connectivity) и её использование для подключения баз данных к Java-приложениям. JDBC представляет собой стандартный программный интерфейс, который позволяет Java-приложениям взаимодействовать с различными системами управления базами данных (СУБД).
Основная цель данной лекции — изучение процесса настройки окружения, подключения к базе данных, выполнения простых и сложных SQL-запросов, а также рассмотрение вопросов безопасности, производительности, транзакций и лучших практик работы с JDBC.
Подготовка рабочей среды
Для начала работы с JDBC необходимо подготовить рабочую среду:
-
Установка базы данных
Рекомендуется использовать MySQL. Также можно использовать H2 — встраиваемую БД, которая работает в памяти и не требует установки.
-
Установка JDK и IDE
Например, JDK 8+ и IntelliJ IDEA. Убедитесь, что версия JDK совместима с JDBC-драйвером.
-
Подключение драйвера JDBC
Для MySQL —
mysql-connector-java.Maven:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency>Gradle:
implementation 'mysql:mysql-connector-java:8.0.33'
Подключение к базе данных
1. Загрузка драйвера
Class.forName("com.mysql.cj.jdbc.Driver");
2. Строка подключения
jdbc:mysql://localhost:3306/mydatabase
С параметрами:
jdbc:mysql://localhost:3306/mydatabase?serverTimezone=UTC&useSSL=false&autoReconnect=true&characterEncoding=UTF-8
3. Учётные данные
Используйте безопасные логин и пароль, по возможности — не root.
4. Установление соединения
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase?serverTimezone=UTC";
String username = "root";
String password = "your_password";
try (Connection connection = DriverManager.getConnection(url, username, password)) {
System.out.println("Подключение к базе данных успешно установлено!");
} catch (SQLException e) {
System.err.println("Ошибка подключения к базе данных: " + e.getMessage());
}
}
}
Здесь используется try-with-resources — соединение автоматически закрывается.
Выполнение SQL-запросов
Для этого используется объект Statement:
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM users");
Пример: извлечение всех пользователей
import java.sql.*;
public class Main {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase?serverTimezone=UTC";
String username = "root";
String password = "your_password";
try (Connection connection = DriverManager.getConnection(url, username, password)) {
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM users");
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
System.out.println("ID: " + id + ", Имя: " + name + ", Возраст: " + age);
}
} catch (SQLException e) {
System.err.println("Ошибка выполнения запроса: " + e.getMessage());
}
}
}
Пример с фильтрацией (WHERE age > 18)
import java.sql.*;
public class Main {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase?serverTimezone=UTC";
String username = "root";
String password = "your_password";
try (Connection connection = DriverManager.getConnection(url, username, password)) {
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM users WHERE age > 18");
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
System.out.println("ID: " + id + ", Имя: " + name + ", Возраст: " + age);
}
} catch (SQLException e) {
System.err.println("Ошибка выполнения запроса: " + e.getMessage());
}
}
}
Вывод лекции
В рамках лекции рассматривается технология JDBC как стандартный программный интерфейс для подключения баз данных к Java-приложениям и её использование для выполнения SQL-запросов с акцентом на:
- настройку окружения
- подключение к базе данных
- выполнение запросов
- вопросы безопасности, производительности и транзакций
Для начала работы необходимо:
- установить СУБД (например, MySQL или H2)
- установить JDK и IDE
- подключить драйвер JDBC через Maven или Gradle
Затем выполняется подключение к базе данных с использованием строки подключения URL, учётных данных и класса DriverManager, что приводит к созданию объекта Connection.
Выполнение SQL-запросов осуществляется с помощью объекта Statement:
executeQuery— для извлечения данных черезResultSetexecuteUpdate— для изменения данных
Работа с ResultSet осуществляется через методы next() и getXXX(), также приведены примеры простой и фильтрованной выборки.
Особое внимание уделено:
- обработке исключений
- автоматическому закрытию соединений
- безопасности и корректной работе с драйверами