Проект uml-data-model-processor представляет собой инструмент для автоматизации процессов проектирования и реализации баз данных на основе диаграмм UML формата PlantUML. Цель проекта заключается в сокращении рутины разработчиков путем автоматической генерации необходимых артефактов, таких как DDL скрипты и заготовки классов POJO.
При создании приложений часто возникает необходимость построения модели данных (Information Engineering Diagram) на основе анализа предметной области. Разработчики вручную создают таблицы и классы моделей, что занимает некоторое время и ресурсы. Инструмент позволит значительно ускорить этот процесс, обеспечивая создание качественной базовой инфраструктуры для дальнейшего развертывания системы.
- Автоматически генерирует SQL-запросы для создания таблиц в базе данных (SQL Data Definition Language, DDL) на основе предоставленных UML-диаграмм PlantUML.
- Формирует начальные классы Java (POJO-классы) для последующего использования в приложениях, поддерживающих стандарты JDBC или JPA.
Приложение принимает на вход файлы PlantUML (.pu, .puml, .txt) и преобразует их в готовые SQL-скрипты и POJO-классы. Вам потребуется базовое понимание синтаксиса UML для подготовки правильной диаграммы. Рекомендуется предварительно проверять схему на валидность с помощью онлайн-инструмента PlantUML Web Server.
- Экономия времени и сил команды разработчиков благодаря автоматизированной генерации основных компонентов.
- Сокращение ошибок, связанных с человеческими факторами при ручной подготовке запросов и классов.
- Возможность быстрого прототипирования и внесения изменений в структуру базы данных без переписывания большого объема кода.
Так как проект находится на стадии MVP, пока реализованы базовые сценарии генерации:
- DDL-скрипт создается в формате простейших SQL-запросов. Результатом генерации является файл
schema.sql. При использовании Spring Data JDBC данный файл автоматически будет подхвачен фреймворком и использован для создания таблиц. - создание POJO-классов поддерживает вариативность:
- модели один к одному с UML-диаграммой, то есть каждое поле класса соответствует полю в модели по типу и имени.
- представление полей вторичных ключей (Foreign Keys) не как поле с идентификатором связанной сущности, а как полноценный связанный объект.
- адаптацию под использование со Spring Data JDBC (поддержка специфических аннотаций
вроде
@Table,@Id,@Column, поддержка интерфейса AggregateReference)
- поддержка всех основных типов связей сущностей как один к одному, один ко многим, многие ко многим (через таблицу связи).
Дальнейшее развитие предполагает расширение функциональности, улучшение качества генерации и интеграцию с популярными фреймворками (см. Поддерживаемые технологии).
Перед началом убедитесь, что у вас установлено:
- JDK версии 8+.
- Apache Maven.
Взаимодействие с функционалом генерации осуществляется посредством Maven-плагина. Описание конфигурации плагина можно изучить на странице uml-data-model-processor-maven-plugin.
Ознакомиться подробнее с генерацией SQL и POJO-классов можно на примере проекта gym-box-example.
На текущий момент инструмент поддерживает следующий спектр технологий:
- Базы данных: MySQL,
PostgreSQL,SQLite. - Языки программирования: Java 11+,
Kotlin. - Система сборки: Maven,
Gradle. - Фреймворки: Spring Data JDBC,
Spring Data JPA,Hibernate,Kotlin Exposedидр. - Системы управления миграциями базы данных: Spring Data JDBC (автоматически выполняет скрипт schema.sql),
Liquibase.
🥷
перечеркнутые технологии- задел на развитие проекта
🙌 Участие в развитии проекта приветствуется!
🗣️ Для обсуждения идей и предложений создаем Issue в GitHub.
⭐ Оцените проект звездочкой, если он вам полезен!
🤝 Поддерживайте проекты открытым исходным кодом!