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

При этом базовые функции поддерживаются с большинством типов СУБД, имеющих JDBC-драйвер.

Скриншот GigaIDE c активным клиентом баз данных
Скриншот GigaIDE c активным клиентом баз данных
Быстрый старт

Быстрое подключение:

  1. Откройте панель (Tool Window) Data Sources и вызовите диалог создания и редактирования подключения (кнопка +).

  2. На вкладке General заполните URL соединения, либо укажите тип СУБД и её параметры: Host, Port, имя БД.

  3. Выберите драйвер для подключения из предложенного списка или укажите ссылку на свой драйвер.

  4. Введите имя пользователя и пароль. Проверьте соединение кнопкой Test Connection.

Работа в режиме консоли:

  1. На панели Data Sources выберите нужный источник и нажмите иконку Open SQL Console.

  2. В выпадающем меню выберите New Console или одну из ранее созданных консолей.

  3. Консоль для написания SQL-запросов и команд откроется в окне редактора.

  4. Для выполнения запроса или команды нажмите «зелёный треугольник» слева от команды, либо воспользуйтесь соответствующими инструментами на панели инструментов (Toolbar) консоли.

Работа с SQL (или JPQL) файлами производится аналогично работе с консолью. Соответствующие инструменты становятся доступны сразу после создания или открытия SQL-файла (или JPQL-файла).

Основные инструменты и возможности для работы с гридом:

  • управление размером страницы данных;

  • навигация по страницам выборки;

  • добавление и удаление строк;

  • редактирование строк прямо в гриде (если это поддерживается драйвером);

  • сохранение изменений в базе данных;

  • повторная загрузка данных из БД;

  • фильтрация и поиск по данным;

  • экспорт данных во внешний файл или буфер обмена (clipboard);

  • импорт данных из файла;

  • отмена и повтор внесённых изменений;

  • управление транзакциями.

Создание и управление сессией:

  1. По умолчанию сессия для источника данных создаётся автоматически. При необходимости её параметры можно отредактировать.

  2. Чтобы создать дополнительные сессии, на панели инструментов консоли, SQL- или JPQL-файла нажмите иконку Edit Session.

  3. В открывшемся окне Session Management вы можете добавлять, удалять и редактировать параметры сессий.

Видеообзор функциональности:

Интроспекция БД и функции редактора SQL

Очевидно, что скорость работы с SQL выше, а ошибок меньше, когда в контексте проекта доступна информация о таблицах, полях и других объектах БД.

Наличие интроспекции позволяет не только редактировать код быстрее, вот что ещё она даёт:

  • Восстановление DDL для объектов базы данных.

  • Рефакторинг SQL-файлов и других объектов кода, которые ссылаются на объекты БД (например, автоматическое обновление имени таблицы в коде при её переименовании в БД).

  • Интеграцию с генераторами запросов.

Все эти функции реализованы в плагине Database.

Скриншот GigaIDE, где в окне Explorer отображается схема БД, а в редакторе кода показано автодополнение по объектам БД
Скриншот GigaIDE, где в окне Explorer отображается схема БД, а в редакторе кода показано автодополнение по объектам БД

Видеообзор функциональности:

Интеграция с фреймворками

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

Скриншот GigaIDE, где в окне Explorer для JPA-сущности показана связь с данными и в редакторе кода окно запуска именованного запроса Spring Data
Скриншот GigaIDE, где в окне Explorer для JPA-сущности показана связь с данными и в редакторе кода окно запуска именованного запроса Spring Data
Настройка совместной работы клиента БД с фреймворками

Функциональность настраивается отдельно для плагинов Jakarta Persistence (JPA), Django и SQLAlchemy. Должен быть активен плагин Database.

 Настройка выполняется одинаково:

  1. Откройте окно с фасетами проекта: File Project Structure Facets.

  2. Выберите нужный фасет (например, JPA или Django).

  3. В настройках фасета укажите источник данных (предварительно необходимо подключиться к БД через плагин Database).

На текущий момент функциональность реализована для следующих фреймворков:

  • Java/Kt: Jakarta Persistence (JPA) и Spring Data;

  • Python: Django и SQLAlchemy.

Видеообзор функциональности для Java:

Видеообзор функциональности для Python:

Хотя плагин Database ещё активно активно развивается, а плагин SQL расширяет количество поддерживаемых наречий SQL, клиент к БД в GigaIDE уже решает огромное количество прикладных задач.


Как развивается функциональность GigaIDE, включая работу с базами данных, можно узнать из наших ежемесячных обзоров. Обзор за март доступен по этой ссылке

Если у вас есть вопросы или предложения по функциональности, пишите в поддержку: https://gitverse.ru/support

Автор: Андрей Слекеничс, PO GigaIDE

Комментарии (0)