package com.example.websocket8_4.model;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
@Table("userdata")
public class UserData {
@Id
private Long id;
private String name;
private String message;
// Getters and Setters
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
класс UserData. Давайте проанализируем его:
Анализ модели данных UserData
Обзор структуры
@Table("userdata")
public class UserData {
@Id
private Long id;
private String name;
private String message;
}
Компоненты
Аннотации
@Table("userdata")
- указывает на таблицу в базе данных@Id
- обозначает первичный ключ
Поля
id
(Long) - уникальный идентификаторname
(String) - имя пользователяmessage
(String) - сообщение пользователя
Методы доступа
- Геттеры и сеттеры для всех полей
Использование в приложении
- Сохранение сообщений чата в базу данных
- Структурирование данных для JSON обмена
- Взаимодействие с реактивным репозиторием
Связь с другими компонентами
- JsonSaveHandler использует для сохранения данных
- UserDataRepository оперирует объектами этого класса
Особенности реализации
- Использование Spring Data аннотаций
- Соответствие полей JSON структуре из клиентского кода
- Простая структура для эффективного хранения сообщений
Схема базы данных
Предполагаемая структура таблицы:
CREATE TABLE userdata (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255),
message TEXT
);
Дополнительные замечания: 1. Класс соответствует простой структуре данных для сохранения сообщений чата 2. Используется Spring Data R2DBC судя по аннотациям 3. Модель соответствует ожиданиям JsonSaveHandler
Для полного понимания работы приложения осталось увидеть: 1. UpperCaseHandler 2. LowerCaseHandler 3. Реализацию UserDataRepository 4. Возможно, конфигурацию базы данных
Готов к получению следующего файла.