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-сущностях.

Подписывайся на наши соц сети:

https://vk.com/javatutorial

https://max.ru/javalib

https://t.me/javalib

Работа с данными

На текущий момент плагин 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 уже решает огромное количество прикладных задач.

Источник

110 views·2 shares