Продолжая тему инструментов, интегрированных в среду разработки, сегодня мы рассмотрим клиент для работы с базами данных, доступный пользователям GigaIDE. Для пользователей Community-версии доступен open source-плагин DB Navigator, который хорошо описан, например, здесь. Пользователям PRO-версии доступна пара расширений:
SQL — синтаксическая поддержка и форматирование SQL-кода;
Database — клиент баз данных с широким набором возможностей.
Мы разрабатываем эту функциональность как полноценную замену одноимённому плагину Database, который ранее был доступен в таких продуктах, как IntelliJ IDEA Ultimate, PyCharm Pro и DataGrip от JetBrains. Уже сейчас это готовый «комбайн», который поддерживает:
подключение к различным типам СУБД и управление драйверами;
поддержку проектных (project) и глобальных (workspace или global) источников данных;
различные режимы выполнения запросов, включая транзакционный;
табличный просмотр и редактирование данных, включая массивы, JSON, CLOB, BLOB (изображения, форматированные данные и т.д.);
управление сессиями подключения к БД;
гибкую настройку подключения с возможностью задания скрипта инициализации и поддержкой keep-alive;
интроспекцию данных и автодополнение в SQL;
автоформатирование SQL-кода;
импорт и экспорт данных;
интеграцию с фреймворками для Java/Kotlin и Python, включая автодополнение в JPQL, JPA- и Django-сущностях.
Работа с данными
На текущий момент плагин Database поддерживает работу со следующими типами источников данных:
PostgreSQL (сайт проекта);
GreenPlum (проект на Github);
H2 (сайт проекта);
Apache Hive (сайт проекта);
Apache Spark (сайт проекта);
ClickHouse (сайт проекта);
Trino (сайт проекта).
При этом базовые функции поддерживаются с большинством типов СУБД, имеющих JDBC-драйвер.

Быстрый старт
Быстрое подключение:
Откройте панель (Tool Window) Data Sources и вызовите диалог создания и редактирования подключения (кнопка +).
На вкладке General заполните URL соединения, либо укажите тип СУБД и её параметры: Host, Port, имя БД.
Выберите драйвер для подключения из предложенного списка или укажите ссылку на свой драйвер.
Введите имя пользователя и пароль. Проверьте соединение кнопкой Test Connection.
Работа в режиме консоли:
На панели Data Sources выберите нужный источник и нажмите иконку Open SQL Console.
В выпадающем меню выберите New Console или одну из ранее созданных консолей.
Консоль для написания SQL-запросов и команд откроется в окне редактора.
Для выполнения запроса или команды нажмите «зелёный треугольник» слева от команды, либо воспользуйтесь соответствующими инструментами на панели инструментов (Toolbar) консоли.
Работа с SQL (или JPQL) файлами производится аналогично работе с консолью. Соответствующие инструменты становятся доступны сразу после создания или открытия SQL-файла (или JPQL-файла).
Основные инструменты и возможности для работы с гридом:
управление размером страницы данных;
навигация по страницам выборки;
добавление и удаление строк;
редактирование строк прямо в гриде (если это поддерживается драйвером);
сохранение изменений в базе данных;
повторная загрузка данных из БД;
фильтрация и поиск по данным;
экспорт данных во внешний файл или буфер обмена (clipboard);
импорт данных из файла;
отмена и повтор внесённых изменений;
управление транзакциями.
Создание и управление сессией:
По умолчанию сессия для источника данных создаётся автоматически. При необходимости её параметры можно отредактировать.
Чтобы создать дополнительные сессии, на панели инструментов консоли, SQL- или JPQL-файла нажмите иконку Edit Session.
В открывшемся окне Session Management вы можете добавлять, удалять и редактировать параметры сессий.
Видеообзор функциональности:
Интроспекция БД и функции редактора SQL
Очевидно, что скорость работы с SQL выше, а ошибок меньше, когда в контексте проекта доступна информация о таблицах, полях и других объектах БД.
Наличие интроспекции позволяет не только редактировать код быстрее, вот что ещё она даёт:
Восстановление DDL для объектов базы данных.
Рефакторинг SQL-файлов и других объектов кода, которые ссылаются на объекты БД (например, автоматическое обновление имени таблицы в коде при её переименовании в БД).
Интеграцию с генераторами запросов.
Все эти функции реализованы в плагине Database.

Видеообзор функциональности:
Интеграция с фреймворками
Одна из главных причин, почему клиент к БД является желанной частью IDE, а не отдельным приложением, — это возможность обеспечить контроль и навигацию по элементам фреймворков, работающих с объектами БД. Например, можно выполнять код взаимодействия с БД (написанный с использованием фреймворков) с параметрами и сразу видеть результат в виде грида с данными. Или выполнять навигацию от JPA-сущности к связанной таблице БД. И, конечно, при переименовании таблицы соответствующие атрибуты в аннотациях сущностей должны меняться автоматически.

Настройка совместной работы клиента БД с фреймворками
Функциональность настраивается отдельно для плагинов Jakarta Persistence (JPA), Django и SQLAlchemy. Должен быть активен плагин Database.
Настройка выполняется одинаково:
Откройте окно с фасетами проекта: File → Project Structure → Facets.
Выберите нужный фасет (например, JPA или Django).
В настройках фасета укажите источник данных (предварительно необходимо подключиться к БД через плагин Database).
На текущий момент функциональность реализована для следующих фреймворков:
Java/Kt: Jakarta Persistence (JPA) и Spring Data;
Python: Django и SQLAlchemy.
Видеообзор функциональности для Java:
Видеообзор функциональности для Python:
Хотя плагин Database ещё активно активно развивается, а плагин SQL расширяет количество поддерживаемых наречий SQL, клиент к БД в GigaIDE уже решает огромное количество прикладных задач.
Как развивается функциональность GigaIDE, включая работу с базами данных, можно узнать из наших ежемесячных обзоров. Обзор за март доступен по этой ссылке
Если у вас есть вопросы или предложения по функциональности, пишите в поддержку: https://gitverse.ru/support
Автор: Андрей Слекеничс, PO GigaIDE