В этом руководстве мы собираемся создать пример Spring Boot Thymeleaf CRUD с Maven, который использует Spring Data JPA для взаимодействия с базой данных H2/MySQL/PostgreSQL. Вы узнаете:

  • Как настроить Spring Data, JPA, Hibernate для работы с базой данных
  • Как определить интерфейсы Data Entity и Repository
  • Способ создания Spring Controller для обработки HTTP-запросов
  • Способ использования Spring Data JPA для взаимодействия с базой данных H2/MySQL/PostgreSQL
  • Как использовать шаблонизатор Thymeleaf для слоя просмотра

Полная статья: Пример Spring Boot Thymeleaf CRUD

Обзор примера Spring Boot Thymeleaf

Мы создадим пример Spring Boot CRUD, используя механизм шаблонов Thymeleaf для уровня представления и Spring Data JPA с базой данных, в котором:

  • Каждый курс (сущность) имеет идентификатор, имя, описание, цену, включенный статус.
  • Поддерживаются операции CRUD: создание, извлечение, обновление, удаление курсов.
  • Пользователь может искать курсы по названию.

— Создать новый объект сущности:

Spring-boot-thymeleaf-example-crud-create

— Получить все объекты:

spring-boot-thymeleaf-example-crud-retrieve

— Обновить статус элемента:

spring-boot-thymeleaf-example-crud-update-status

— Обновите объект на своей странице:

Spring-boot-thymeleaf-example-crud-update

— Поиск по имени:

spring-boot-thymeleaf-пример-crud-поиск

— Удалить элемент:

spring-boot-thymeleaf-example-crud-delete

Технологии

  • Ява 8
  • Spring Boot 2.7 (с Spring Web MVC, Spring Data JPA, Thymeleaf)
  • База данных H2/MySQL/PostgreSQL
  • Мавен 3.6.1
  • Начальная загрузка 4
  • jQuery 3.6.1
  • Шрифт потрясающий

Структура проекта

spring-boot-thymeleaf-example-crud-project-structure

Позвольте мне объяснить это кратко.

  • Course класс соответствует сущности и таблице курсы.
  • CourseRepository это интерфейс, который расширяет JpaРепозиторий для методов CRUD и пользовательских методов поиска. Он будет автоматически подключен в CourseController.
  • CourseController это Контроллер который имеет методы сопоставления запросов для запросов RESTful, таких как: получить все, добавитькурс, сохранитьКурс, редактироватьКурс, удалитьКурс, updateCourseEnabledStatus.

  • static/css содержит пользовательский стиль css.

  • template хранит файлы шаблонов HTML для проекта.

  • Конфигурация источника данных Spring, JPA и Hibernate в application.properties.

  • pom.xml содержит зависимости для Spring Boot, Thymeleaf, Bootstrap и Database.

Дополнительные шаги и исходный код Github см. на странице:
Пример Spring Boot Thymeleaf CRUD

Дальнейшее чтение

Дополнительные производные запросы по адресу:
Пример запроса репозитория JPA в Spring Boot

Пользовательский запрос с @Query аннотация:
Пример Spring JPA @Query: Пользовательский запрос в Spring Boot

Чтобы отсортировать/упорядочить по нескольким полям:
Spring Data JPA Сортировка/Упорядочивание по нескольким столбцам | Весенний ботинок

Обработка исключения для этого Rest API необходима:

Или способ написать модульный тест:

Полное приложение CRUD:

Больше практики:

Ассоциации: