Spring Boot(06): Spring Boot в сочетании с MySQL создает минималистскую и эффективную систему управления данными.
Spring Boot(06): Spring Boot в сочетании с MySQL создает минималистскую и эффективную систему управления данными.
Язык кода:javascript
копировать
Описание среды: Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE

1. Предисловие

Spring Boot — это среда быстрой разработки, основанная на среде Spring, которая позволяет разработчикам быстро создавать надежные веб-приложения Java. MySQL — одна из наиболее широко используемых систем реляционных баз данных, а также лучший выбор для Spring Boot для интеграции баз данных. В этой статье будет показано, как Spring Boot интегрирует базу данных MySQL.

2. Резюме

В этой статье будет создано простое веб-приложение Java с использованием Spring Boot и базы данных MySQL. Сначала мы покажем, как настроить Spring Boot, а затем будем использовать JPA (Java Persistence API) и Hibernate для управления сопоставлением между объектами класса сущности и базой данных. Наконец, мы будем использовать Spring Data JPA для запроса и управления данными в базе данных.

3. Содержание

  1. Базовые знания интеграции Spring Boot и MySQL.
  2. Настройте зависимости Maven Spring Boot
  3. Настроить подключение к базе данных MySQL
  4. Используйте JPA и Hibernate для управления сопоставлением между классами сущностей и базой данных.
  5. Запрашивайте данные в базе данных и манипулируйте ими с помощью Spring Data JPA.
  6. тестовый пример
  7. Подвести итог

4. Текст

4.1 Базовые знания по интеграции Spring Boot и MySQL

Spring Boot — это среда быстрой разработки, основанная на среде Spring, которая позволяет разработчикам быстро создавать надежные веб-приложения Java. Spring Boot предоставляет множество готовых функций, таких как автоматическая настройка, элегантная обработка ошибок, встроенный веб-сервер, безопасность, мониторинг и т. д.

MySQL — одна из наиболее широко используемых систем реляционных баз данных, а также лучший выбор для Spring Boot для интеграции баз данных. MySQL поддерживает несколько типов данных, репликацию «главный-подчиненный», секционирование и другие функции. Кроме того, MySQL также предоставляет множество отличных инструментов поддержки, таких как MySQL Workbench, MySQL Connector/J и т. д.

4.2 Настройка зависимостей Maven Spring Boot

Прежде чем мы начнем, нам нужно добавить зависимости Spring Boot и MySQL в проект Maven. Добавьте следующие зависимости в файл pom.xml:

Язык кода:javascript
копировать
<dependencies>
    <!-- Spring Загрузочные зависимости -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <!-- Зависимость MySQL -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    
    <!-- Spring Data JPA-зависимость -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
</dependencies>

4.3 Настройка подключения к базе данных MySQL

Прежде чем настраивать подключение к базе данных MySQL, нам необходимо установить базу данных MySQL локально. После завершения установки нам необходимо создать базу данных и пользователя.

Создайте базу данных в MySQL:

Язык кода:javascript
копировать
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Создайте пользователя в MySQL:

Язык кода:javascript
копировать
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';

Предоставьте пользователю права доступа к базе данных:

Язык кода:javascript
копировать
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%';

Теперь, когда у нас есть готовая база данных MySQL, следующим шагом будет настройка подключения к базе данных MySQL в Spring Boot.

Добавьте следующую конфигурацию в файл application.properties:

Язык кода:javascript
копировать
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=GMT%2B8&characterEncoding=utf-8
spring.datasource.username=myuser
spring.datasource.password=mypassword

4.4. Используйте JPA и Hibernate для управления сопоставлением между классами сущностей и базами данных.

Далее мы будем использовать JPA и Hibernate для управления сопоставлением между классами сущностей и базами данных. JPA — это спецификация персистентности Java, а Hibernate — это платформа ORM, реализующая спецификацию JPA, которая может сопоставлять объекты Java с таблицами в базе данных.

Создайте пакет с именем com.example.demo в каталоге src/main/java и создайте класс сущности с именем User:

Язык кода:javascript
копировать
@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;
    
    // методы получения и установки опущены
}

Используйте аннотацию @Entity в классе сущности, чтобы аннотировать класс сущности, используйте аннотацию @Table, чтобы она соответствовала имени таблицы базы данных, используйте аннотацию @Id в атрибутах, чтобы идентифицировать первичный ключ, и используйте аннотацию @GeneratedValue, чтобы указать стратегия генерации значения первичного ключа. Пример скриншота выглядит следующим образом:

Далее нам нужно создать интерфейс репозитория с именем UserRepository для управления базой данных. Использование Spring Data JPA может значительно упростить нашу работу по разработке. Создайте пакет с именем com.example.demo.repository в каталоге src/main/java и создайте интерфейс с именем UserRepository:

Язык кода:javascript
копировать
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}

Как видите, этот интерфейс наследует интерфейс JpaRepository, в котором уже реализованы базовые операции CRUD. Нам больше не нужно вручную писать методы этих операций.

4.5 Использование Spring Data JPA для запроса и работы с данными в базе данных

Теперь, когда мы создали класс сущности User и интерфейс UserRepository, следующим шагом будет использование Spring Data JPA для запроса и управления данными в базе данных.

Создайте пакет с именем com.example.demo.controller в каталоге src/main/java и создайте класс контроллера с именем UserController:

Язык кода:javascript
копировать
@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserRepository userRepository;

    @GetMapping("")
    public List<User> getUsers() {
        return userRepository.findAll();
    }
    
    @PostMapping("")
    public User createUser(@RequestBody User user) {
        return userRepository.save(user);
    }
}

Используйте аннотацию @RestController в классе UserController, чтобы идентифицировать класс как класс контроллера, и используйте аннотацию @RequestMapping, чтобы указать путь сопоставления. Пример скриншота выглядит следующим образом:

В методе getUser() мы используем метод userRepository.findAll() для запроса всех пользователей в базе данных и возврата списка пользователей.

В методе createUser() мы используем аннотацию @RequestBody для сопоставления данных JSON в теле запроса с объектом User и используем метод userRepository.save(user) для сохранения объекта User в базе данных и возврата сохраненного пользователя. объект.

4.6 Тестовые случаи

​ ​ Мы используем Postman для тестирования наших приложений.

Отправьте запрос GET и получите всех пользователей:

Язык кода:javascript
копировать
URL:http://localhost:8080/users
Method:GET

Отправьте POST-запрос и создайте нового пользователя:

Язык кода:javascript
копировать
URL:http://localhost:8080/users
Method:POST
Body:{
    "name": "Tom",
    "email": "tom@example.com"
}

5. Резюме

В этой статье описывается, как использовать Spring Boot и MySQL для создания простого веб-приложения Java. Мы использовали JPA и Hibernate для управления сопоставлением между классами сущностей и базой данных, а также использовали Spring Data JPA для запроса и обработки данных в базе данных. В то же время мы также написали тестовые примеры для тестирования нашего приложения.

В этой статье мы узнали, как настроить соединение с базой данных MySQL, создавать классы сущностей, создавать интерфейсы репозитория, использовать Spring Data JPA для работы с данными в базе данных и как писать тестовые примеры. Я полагаю, что благодаря введению этой статьи читатели уже поняли суть интеграции Spring Boot и MySQL и могут использовать ее для быстрого создания собственных веб-приложений Java.

Обо мне

👨🎓Автор:Bugger ✏️блог:CSDN、наггетсы、infoQ、51CTOждать 🎉Введение: CSDN|Alibaba Cloud|Huawei Cloud|51CTO и другие эксперты блогов сообщества, Топ-30 звезд предыдущих блогов, Топ-40 самых популярных авторов года в Nuggets, Топ-12 блоггеров в 51CTO, Nuggets | InfoQ | 51CTOждать社区优质创作者,Общее количество поклонников во всей сети15w+ 

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose