1. Maven
Найважливіша деталь — сама бібліотека JDBC Driver для MySQL сервера. Вона просто так не з'явиться на твоєму комп'ютері — треба її додати.
Якщо ти використовуєш Maven, тобі потрібно допомогти йому: вказати потрібну бібліотеку.
JDBC-драйвер для MySQL:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
На mvn repository, можна перевірити оновлення
Просто додай цей код до твого pom.xml.
Також наведу ще кілька популярних драйверів.
JDBC-драйвер для PostgeSQL:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.4.0</version>
</dependency>
JDBC-драйвер для Oracle:
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>21.5.0.0</version>
</dependency>
JDBC драйвер для H2:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.1.214</version>
</dependency>
2. Перший запит до бази даних
Усі необхідні бібліотеки підключені — тепер настав час запустити твою першу програму з доступом до бази даних. Писатимемо весь код у методі main().
Етап 1. Додай перед методом main() кілька імпортів — це суттєво полегшить тобі життя:
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
Етап 2. Спершу нам потрібно створити підключення до бази даних. Для цього у методі main() напиши такий код:
Connection connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test",
"login", "password");
Можна і в один рядок — як тобі буде зручніше. Логін та пароль, ясна річ, потрібно підставити реальні від твого локального MySQL-сервера.
Етап 3. Створюємо запит до бази даних. Давай дістанемо всіх користувачів із таблиці user. Тоді тобі потрібно буде додати такий рядок коду:
Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery("SELECT * FROM user");
Це аж два рядки. У першому ми створюємо об'єкт Statement, а в другому за його допомогою виконуємо запит до бази даних. Метод executeQuery() виконує запит до бази даних та повертає об'єкт типу ResultSet.
Етап 4. Виведемо на екран дані, що містяться в об'єкті ResultSet.
ResultSet — це не множина, він просто так називається. У ньому зберігається результат виконання запиту. Цей об'єкт чимось схожий на ітератор: він дозволяє встановлювати/міняти поточний рядок результату, а потім із цього поточного рядка можна отримати дані. Додай до свого прикладу такий код:
while (results.next()) {
Integer id = results.getInt(1);
String name = results.getString(2);
System.out.println(results.getRow() + "." + id + "\t"+ name);
}
Метод next() змінює поточний рядок результату на наступний. Він повертає true, якщо такий рядок є і false, якщо рядки закінчилися.
Потім з поточного рядка об'єкта ResultSet можна отримати дані з його колонок:
- getRow() — поверне номер поточного рядка в об'єкті ResultSet
- getInt(N) — поверне дані N-ї колонки поточного рядка як тип int
- getString(N) — поверне дані N-ї колонки поточного рядка як тип String
3. Повний лістинг програми
Щоб мінімізувати помилки, наведу нижче повний лістинг програми:
package org.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JdbcApplication {
public static void main(String[] args) throws Exception{
Connection connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test",
"root", "secret");
Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery("SELECT * FROM user");
while (results.next()) {
Integer id = results.getInt(1);
String name = results.getString(2);
System.out.println(results.getRow() + "." + id + "\t"+ name);
}
connection.close();
}
}
І ось моє виведення на екран після запуску програми:
"C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe… | |||
1. 1 | Іванов Іван | ||
2. 2 | Петров Микола | ||
3. 3 | Сідоров Віталій | ||
Process finished with exit code 0 |
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ