Выборка из БД PostgreSQL и создание на основе ее таблицы на Java

В этом посте я хочу поделиться с вами информацией о том, как сделать выборку из базы данных PostgreSQL и создать на её основе таблицу на Java. Для этого мы будем использовать JDBC (Java Database Connectivity) API.

Прежде всего, нам нужно подключиться к базе данных. Вот пример кода для подключения к PostgreSQL:
import java.sql.*;

public class Main {
    public static void main(String[] args) {
        try {
            // Замените эти значения на реальные данные вашей базы данных
            String url = "jdbc:postgresql://localhost:5432/your_database";
            String username = "your_username";
            String password = "your_password";

            // Создание соединения с базой данных
            Connection connection = DriverManager.getConnection(url, username, password);

            // Создание SQL запроса
            String sql = "SELECT * FROM your_table";

            // Создание объекта Statement
            Statement statement = connection.createStatement();

            // Выполнение запроса и получение результатов
            ResultSet resultSet = statement.executeQuery(sql);

            // Просмотр результатов
            while (resultSet.next()) {
                // Здесь вы можете добавить код для обработки каждой строки результата
                // Например, вывод значений столбцов в консоль
                System.out.println(resultSet.getString("column_name"));
            }

            // Закрытие ресурсов
            resultSet.close();
            statement.close();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

Этот код подключается к базе данных PostgreSQL, выполняет запрос SELECT * FROM your_table и выводит результаты в консоль. Обратите внимание, что вам нужно заменить «your_database», «your_username» и «your_password» на реальные данные вашей базы данных.

Теперь давайте создадим таблицу на основе результатов выборки. Предположим, что у нас есть класс «User», который представляет собой модель данных пользователя:
public class User {
    private int id;
    private String name;
    private String email;

    // Конструктор, геттеры и сеттеры
    // ...
}

Тогда код для создания таблицы может выглядеть так:
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        try {
            // Подключение к базе данных
            String url = "jdbc:postgresql://localhost:5432/your_database";
            String username = "your_username";
            String password = "your_password";
            Connection connection = DriverManager.getConnection(url, username, password);

            // Создание SQL запроса
            String sql = "SELECT * FROM your_table";

            // Создание объекта Statement
            Statement statement = connection.createStatement();

            // Выполнение запроса и получение результатов
            ResultSet resultSet = statement.executeQuery(sql);

            // Список пользователей
            List<User> users = new ArrayList<>();

            // Добавление пользователей в список
            while (resultSet.next()) {
                User user = new User();
                user.setId(resultSet.getInt("id"));
                user.setName(resultSet.getString("name"));
                user.setEmail(resultSet.getString("email"));
                // Другие поля...

                users.add(user);
            }

            // Закрытие ресурсов
            resultSet.close();
            statement.close();
            connection.close();

            // Теперь у нас есть список пользователей, который мы можем использовать для создания таблицы
            // Например, создать новую таблицу в базе данных
            // Этот код предполагает, что у вас уже есть необходимые разрешения для создания таблиц
            String createTableSql = "CREATE TABLE new_table (" +
                    "id SERIAL PRIMARY KEY," +
                    "name VARCHAR(255)," +
                    "email VARCHAR(255))";

            PreparedStatement preparedStatement = connection.prepareStatement(createTableSql);
            preparedStatement.executeUpdate();

            // Вставка данных в новую таблицу
            for (User user : users) {
                String insertSql = "INSERT INTO new_table (name, email) VALUES (?, ?)";
            preparedStatement = connection.prepareStatement(insertSql);
            preparedStatement.setString(1, user.getName());
            preparedStatement.setString(2, user.getEmail());
            preparedStatement.executeUpdate();
        }

        // Закрытие ресурсов
        preparedStatement.close();
        connection.close();

        System.out.println("Таблица успешно создана и данные добавлены!");
    } catch (SQLException e) {
        e.printStackTrace();
    }
}
}

Этот код создает новую таблицу «new_table» в базе данных и вставляет в неё данные, полученные из исходной таблицы «your_table». Обратите внимание, что вам нужно будет заменить «your_database», «your_username» и «your_password» на реальные данные вашей базы данных, а также «your_table» на имя исходной таблицы, из которой вы хотите выбрать данные.
Поделиться:

Похожие публикации

Тут ничего нет

Нет комментариев