Урок 32: Введение в JDBC
Java Database Connectivity (JDBC) — это API, который позволяет Java-программам взаимодействовать с реляционными базами данных. С помощью JDBC можно выполнять SQL-запросы, получать результаты, а также обновлять данные в базе данных. В этом уроке мы рассмотрим основные шаги для работы с JDBC: подключение к базе данных, выполнение запросов и обработка результатов.
Подключение к базе данных
Для подключения к базе данных необходимо загрузить драйвер и создать объект Connection
. Рассмотрим пример подключения к базе данных MySQL:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseConnection {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "root";
String password = "password";
try {
Connection connection = DriverManager.getConnection(url, user, password);
System.out.println("Подключение установлено!");
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Результат выполнения
Выполнение SQL-запросов
После подключения к базе данных можно выполнять SQL-запросы с помощью объекта Statement
. Пример выполнения запроса на выборку данных:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ExecuteQueryExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "root";
String password = "password";
try {
Connection connection = DriverManager.getConnection(url, user, password);
Statement statement = connection.createStatement();
String query = "SELECT * FROM users";
ResultSet resultSet = statement.executeQuery(query);
while (resultSet.next()) {
System.out.println("ID: " + resultSet.getInt("id") + ", Имя: " + resultSet.getString("name"));
}
resultSet.close();
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Результат выполнения
ID: 1, Имя: Иван
ID: 2, Имя: Мария
ID: 3, Имя: Петр
Упражнения
Упражнение 1: Вставка данных в таблицу
Напишите программу, которая подключается к базе данных и выполняет SQL-запрос для вставки новой записи в таблицу users
. Данные для вставки: ID = 4, Имя = "Алексей".
Решение:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class InsertDataExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "root";
String password = "password";
try {
Connection connection = DriverManager.getConnection(url, user, password);
Statement statement = connection.createStatement();
String insertQuery = "INSERT INTO users (id, name) VALUES (4, 'Алексей')";
int rowsAffected = statement.executeUpdate(insertQuery);
System.out.println("Вставлено строк: " + rowsAffected);
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Объяснение: Программа подключается к базе данных и выполняет запрос на вставку новой записи в таблицу users
. Количество вставленных строк выводится в консоль.
Упражнение 2: Обновление данных в таблице
Напишите программу, которая подключается к базе данных и выполняет SQL-запрос для обновления имени пользователя с ID = 2 на "Мария Иванова".
Решение:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class UpdateDataExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "root";
String password = "password";
try {
Connection connection = DriverManager.getConnection(url, user, password);
Statement statement = connection.createStatement();
String updateQuery = "UPDATE users SET name = 'Мария Иванова' WHERE id = 2";
int rowsAffected = statement.executeUpdate(updateQuery);
System.out.println("Обновлено строк: " + rowsAffected);
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Объяснение: Программа подключается к базе данных и выполняет запрос на обновление имени пользователя с ID = 2. Количество обновленных строк выводится в консоль.