MySQL ❤️ Java

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





Report Page