MySQL ❤️ Java
@iksergeyruБыстрая инструкция по созданию простого приложения с использованием СУБД MySQL на языке Java
Шаг 0. Первоначальная настройка MySQL в этом посте
Шаг 1. Создаём пустой проект. Я буду использовать сборщик Maven 2.8.1
Шаг 2. Создаём зависимость и подключаем MySQL-драйвер
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.31</version> </dependency>
Шаг 3. Для создания подключения, необходимо указать\получить расположение сервера MySQL, имени базы данных с которой будет производиться работа, логин и пароль пользователя, от имени которого будут выполняться запросы.
Подготавливаем всё необходимое
String db = "computer_shop";
String host = "127.0.0.1";
String port = "3307";
String pattern = "jdbc:mysql://%s:%s/%s";
String url = String.format(pattern,
host, port, db);
// url jdbc:mysql://127.0.0.1:3307/computer_shop
String user = "serenya";
String password = "qwerty28";
computer_shop – одна из баз данных;
mysql> SHOW databases; +--------------------+ | Database | +--------------------+ | aero_db | | computer_shop | | information_schema | | lesson01 | | mysql | | performance_schema | | sys | +--------------------+
Шаг 4. Создаём экземпляр Connection, отвечающий за подключение
Connection connection = DriverManager.getConnection(url, user, password);
Шаг 5. Создаём экземпляр Statement, через который будем выполнять SQL-запросы
Statement statement = connection.createStatement();
Шаг 6. Описываем SQL-запрос
String sql = "SELECT * FROM Product;";
Product – одна из таблиц текущей базы данных
mysql> SHOW TABLES; +-------------------------+ | Tables_in_computer_shop | +-------------------------+ | Laptop | | PC | | Printer | | Product | +-------------------------+
Шаг 7. Выполняем SELECT-запрос и результат сохраняем в экземпляре ResultSet
ResultSet rs = statement.executeQuery(sql);
Шаг 8. Чтение данных.
Структура таблицы Product
mysql> DESCRIBE Product; +-------+-------------+ | Field | Type | +-------+-------------+ | maker | varchar(10) | | model | varchar(50) | | type | varchar(50) | +-------+-------------+
Данные читать можно с точностью до имени полей таблицы
while (rs.next()) {
String maker = rs.getString("maker");
String model = rs.getString("model");
String type = rs.getString("type");
System.out.printf("%10s %10s %10s\n", maker, model, type);
}

или по индексам полей
while (rs.next()) {
for (int i = 1; i < 4; i++) {
System.out.printf("%10s", rs.getString(i));
}
System.out.println();
}

Шаг 9. Закрываем всё, что открывали и закрываем подключение.
rs.close(); statement.close(); connection.close();
PS. Есть разные типы запросов, например для SELECT-запросов итог выполнения будет таблица, поэтому кладём результат в экземпляр ResultSet , если нужно выполнить запрос, который не возвращает таблиц, например, INSERT-запрос(результат будет либо информация об успешном выполнении либо нет), то сделать это можно так:
String insert = "INSERT into Product values('D','8888','PC')";
boolean result = statement.execute(insert);
PPS. Помним, что при работе с базами данных можно поймать множество ошибок. Обязательно обрабатывайте их.
Спасибо за внимание. Исходник тут github