Настройка базы данных MySQL и создание модели данных для взаимодействия Java Spring Boot приложения с ней. Для выполнения практических заданий рекомендуется использовать сайт ссылка на сайт. В этом курсе используется MySQL из-за её широкой популярности.
Подключение библиотек
Для взаимодействия Java Spring Boot с MySQL подключите библиотеки через pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
Зависимости spring-boot-starter-jdbc и spring-boot-starter-test пока не нужны.
spring-boot-starter-data-jpa использует JPA (Java Persistence API) — стандартную технологию для работы с базами данных в Java. MySQL Connector/J обеспечивает подключение к MySQL.
Настройка подключения
Настройки подключения укажите в application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/spring_boot_blog?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=root spring.jpa.hibernate.ddl-auto=update
- spring.datasource.url: Строка подключения. localhost:3306 — адрес и порт локального сервера MySQL, spring_boot_blog — имя базы данных. Замените на свои значения.
- spring.datasource.username и spring.datasource.password: Имя пользователя и пароль. Замените на свои учетные данные.
- spring.jpa.hibernate.ddl-auto=update: Настройка Hibernate (ORM фреймворка) для автоматического обновления схемы базы данных при запуске приложения. В продакшн-окружении используйте validate или none.
Для запуска локального сервера MySQL используйте phpMyAdmin, XAMPP, MAMP или Open Server. Укажите в application.properties корректный порт, имя пользователя и пароль.
Создание модели данных (Entity)
Создайте Java-класс для модели данных таблицы «посты»:
package com.example.demo.model;
import javax.persistence.*;
@Entity
public class Post {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String title;
@Column(columnDefinition = "TEXT", nullable = false)
private String content;
@Column(columnDefinition = "TEXT", nullable = false)
private String annotation;
private int views;
// Getters and Setters
}
- @Entity: Указывает, что класс представляет сущность базы данных.
- @Id: Поле, являющееся первичным ключом.
- @GeneratedValue(strategy = GenerationType.IDENTITY): Автоматическая генерация значений первичного ключа.
- @Column: Параметры столбца в базе данных (nullable = false — столбец не может быть NULL).
Сгенерируйте геттеры и сеттеры для всех полей.
Создание репозитория
Создайте интерфейс, расширяющий JpaRepository:
package com.example.demo.repository;
import com.example.demo.model.Post;
import org.springframework.data.jpa.repository.JpaRepository;
public interface PostRepository extends JpaRepository<Post, Long> {
}
Этот интерфейс предоставляет методы для CRUD-операций (Create, Read, Update, Delete) над сущностью Post.
Интеграция с контроллером
В контроллере внедряем репозиторий:
@Controller
public class BlogController {
@Autowired
private PostRepository postRepository;
@GetMapping("/blog")
public String blog(Model model) {
model.addAttribute("posts", postRepository.findAll());
return "blog";
}
}
В шаблоне Thymeleaf перебираем данные:
<div th_each="post : ${posts}">
<h3><span th_text="${post.title}"></span></h3>
<p th_text="${post.annotation}"></p>
<a th_href="@{/blog/{id}(id=${post.id})}" th_text="'Подробнее'"></a>
</div>
Запустите приложение. В базе данных автоматически создастся таблица post. Добавьте записи (через phpMyAdmin) и проверьте отображение на странице /blog.
В этом уроке мы настроили подключение к базе данных MySQL, создали модель данных и репозиторий, и интегрировали их с контроллером. В следующих уроках рассмотрим добавление, редактирование и удаление записей.