Maven
Самая важная деталь – сама библиотека JDBC Driver для MySQL сервера. Она просто так не появится на твоем компьютере, поэтому тебе нужно ее туда добавить.
Если ты используешь Maven, то тебе нужно помочь ему – указать нужную библиотеку.
JDBC-драйвер для MySQL:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
Просто добавь этот код в твой 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>
Первый запрос к базе данных
Все нужные библиотеки подключены, теперь настало время запустить твою первую программу с доступом к базе данных. Писать весь код будем в методе 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
Полный листинг программы
Чтобы минимизировать ошибки, приведу ниже полный листинг программы:
package org.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JdbcApplicatin {
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 |
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ