Database-клиент для GigaIDE
Продолжая тему инструментов, интегрированных в среду разработки, сегодня мы рассмотрим клиент для работы с базами данных, доступный пользователям 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 уже решает огромное количество прикладных задач.
