23:46
Урок 34: Обработка результатов

Курс по программированию на Java

Урок 34: Обработка результатов

Обработка результатов SQL-запросов в JDBC осуществляется с помощью объекта ResultSet. Этот объект позволяет получать данные, возвращаемые запросом, и предоставляет методы для навигации и извлечения данных. В этом уроке мы рассмотрим основные методы ResultSet, такие как next(), getInt(), getString() и другие, а также научимся обрабатывать результаты запросов на выборку данных.

Основные методы ResultSet

Основные методы, используемые для работы с ResultSet:

  • next() - перемещает курсор на одну строку вперед
  • getInt(columnLabel) - извлекает значение из текущей строки как int
  • getString(columnLabel) - извлекает значение из текущей строки как String

Пример обработки результатов запроса:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ResultSetExample {
 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()) {
 int id = resultSet.getInt("id");
 String name = resultSet.getString("name");
 System.out.println("ID: " + id + ", Имя: " + name);
 }

 resultSet.close();
 statement.close();
 connection.close();
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
}

Результат выполнения

ID: 1, Имя: Иван
ID: 2, Имя: Мария
ID: 3, Имя: Петр

Обработка данных из нескольких таблиц

При выполнении запросов, объединяющих данные из нескольких таблиц, ResultSet позволяет извлекать данные по столбцам из различных таблиц. Пример:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JoinQueryExample {
 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 u.id, u.name, o.order_id FROM users u JOIN orders o ON u.id = o.user_id";
 ResultSet resultSet = statement.executeQuery(query);

 while (resultSet.next()) {
 int id = resultSet.getInt("id");
 String name = resultSet.getString("name");
 int orderId = resultSet.getInt("order_id");
 System.out.println("ID: " + id + ", Имя: " + name + ", Order ID: " + orderId);
 }

 resultSet.close();
 statement.close();
 connection.close();
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
}

Результат выполнения

ID: 1, Имя: Иван, Order ID: 1001
ID: 2, Имя: Мария, Order ID: 1002
ID: 3, Имя: Петр, Order ID: 1003

Упражнения

Упражнение 1: Обработка данных из таблицы products

Напишите программу, которая подключается к базе данных и выполняет SQL-запрос для извлечения всех данных из таблицы products. Выведите в консоль ID продукта, его название и цену.

Решение:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class SelectProductsExample {
 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 products";
 ResultSet resultSet = statement.executeQuery(query);

 while (resultSet.next()) {
 int id = resultSet.getInt("id");
 String name = resultSet.getString("name");
 double price = resultSet.getDouble("price");
 System.out.println("ID: " + id + ", Название: " + name + ", Цена: " + price);
 }

 resultSet.close();
 statement.close();
 connection.close();
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
}

Объяснение: Программа подключается к базе данных и выполняет запрос для извлечения всех данных из таблицы products. Полученные данные выводятся в консоль.

Упражнение 2: Обработка данных из объединенных таблиц

Напишите программу, которая подключается к базе данных и выполняет SQL-запрос для объединения таблиц customers и orders. Выведите в консоль ID клиента, его имя и номер заказа.

Решение:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JoinCustomersOrdersExample {
 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 c.id, c.name, o.order_id FROM customers c JOIN orders o ON c.id = o.customer_id";
 ResultSet resultSet = statement.executeQuery(query);

 while (resultSet.next()) {
 int id = resultSet.getInt("id");
 String name = resultSet.getString("name");
 int orderId = resultSet.getInt("order_id");
 System.out.println("ID клиента: " + id + ", Имя: " + name + ", Номер заказа: " + orderId);
 }

 resultSet.close();
 statement.close();
 connection.close();
 } catch (SQLException e) {
 e.printStackTrace();
 }
 }
}

Объяснение: Программа подключается к базе данных и выполняет запрос для объединения таблиц customers и orders. Полученные данные выводятся в консоль.

Категория: Java | Просмотров: 15 | Добавил: Admin | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: