Тэги: Java, SQL, Spring Boot, rest, руководство.
Тэги: Java, SQL, rest, Spring Boot, руководство, json.
Тэги: Spring Boot, rest, SQL, Java, руководство, maven, json.
Тэги: Spring Boot, rest, SQL, PostgreSQL, Java, Stream API, руководство.
Тэги: SQL, PostgreSQL.
Тэги: PostgreSQL, нейросети, Docker, gradle, Excel, Kotlin, Spring AI, SQL.
Тэги: SQL, PostgreSQL, Spring Boot, gradle, Kotlin, yaml.
Liquibase позволяет автоматизировать внесение обновлений в структуру БД. Каждое изменение описывается в декларативном стиле и версионируется. Обновления накатываются в заранее определённом порядке на данную БД, если они ещё не накатывались. Автоматизация процесса наката изменений на базу данных особенно важна, если у вас несколько различных экземпляров приложений и для каждого из них требуется поддерживать свою БД.
Данный материал также доступен в формате видео на YouTube.
Рассмотрим работу с Liquibase на конкретном примере. С помощью Spring Initializr создадим заготовку нашего Spring Boot приложения (выбираем в качестве языка kotlin, а в качестве сборщика – gradle). В dependencies выберем компоненты Spring Web (функциональность rest-контроллеров), Spring Data JDBC (работа с БД), PostgreSQL Driver (драйвер нашей СУБД) и сам Liquibase Migration. В итоге файл build.gradle.kts в секции dependencies должен содержать следующие зависимости:
Тэги: SQL, json, PostgreSQL.
JSON (JavaScript Object Notation) является форматом для хранения и передачи данных в форме объектов, массивов и других значений, которые можно легко преобразовать в текстовую строку. PostgreSQL поддерживает хранение данных в формате JSON, а также множество функций для обработки и анализа JSON-данных.
В PostgreSQL JSON может храниться в столбцах таблицы, при этом можно использовать индексы для ускорения поиска и запросов. Кроме того, в PostgreSQL есть возможность использовать операторы для извлечения и модификации данных в формате JSON.
Тэги: PostgreSQL, SQL, YouTube.
Когда различные иерархии находятся в пределах одной таблицы, может потребоваться пройтись по одной из веток этой иерархии, начиная с самого нижнего элемента и заканчивая корневым. Примером иерархических данных может служить структура каталогов на файловой системе, оргструктура в компании или справочник географических объектов (города-страны-континенты).
PostgreSQL предоставляет специальный синтаксис with recursive для написания рекурсивных запросов. Эти запросы позволяют легко выбирать иерархические данные.
Рассмотрим конкретную таблицу:
Тэги: Hibernate, Spring, Spring Boot, rest, SQL, gradle, Spring Data, Kotlin, json, yaml, YouTube, руководство, H2.
Ранее я уже приводил пример в статье CrudRepository на Kotlin, как Spring Data позволяет легко выполнять основные операции над сущностями в БД. Теперь пойдём ещё дальше и рассмотрим как Spring Data Rest позволяет избежать написания контроллеров и сервисной логики. Поскольку писать будем на Kotlin, нам придётся учитывать специфику взаимодействия с Java-кодом, на который изначально был рассчитан Spring Data Rest.
В качестве примера напишем приложение, которое позволяет просматривать и редактировать список музыкальных групп.
Исходники тестового проекта, адаптированного под Spring Boot 3, доступны на github.
Для начала создадим заготовку проекта. Проще всего это сделать с помощью Spring Initializr. В настройках выбираем в качестве языка Kotlin и в качестве сборщика Gradle – Kotlin. В dependency нам нужно последовательно добавить три зависимости: Spring Data JPA, Rest Repositories и H2 Database. H2 – это СУБД, которая работает в оперативной памяти и не требует установки. Однако при необходимости вы можете легко поменять настройки подключения и использовать другой драйвер, например, Postgres. При этом как-то править код приложения не потребуется.
Kotlin, Java, Spring, Spring Boot, Spring Data, Spring AI, SQL, PostgreSQL, Oracle, H2, Linux, Hibernate, Collections, Stream API, многопоточность, чат-боты, нейросети, файлы, devops, Docker, Nginx, Apache, maven, gradle, JUnit, YouTube, руководство, ООП, алгоритмы, головоломки, rest, GraphQL, Excel, XML, json, yaml.