- แแ แแแฅแขแแก แแแแแแ
- แซแแ แแแแแ แแฃแ-แแแแกแแแ (แแแแแฃแก แแฃแแฅแขแแแ)
- แแแแฎแแแแแแ แแ แฅแแขแแฅแขแฃแ แแแ
- แแแแฎแแแแแแ แแแขแแ แคแแแกแฃแ แจแ แแแ
- แแแแฎแแแแแแ แแแแแแก แจแ แแแ
- แแแแฎแแแแแแ แแแแแชแแแแ แจแ แแแ
แกแแแแ แแแฃแจแแแแ แฉแแฎแแแแ
pom.xml
แคแแแแก แแ แแแฎแแแแแแ แ แแแแ แแแฃแจแแแ. Java-แก 17 แแแ แกแแแแแ แแฌแงแแแแแ แแแแขแแ Intelij-แแ แจแแแซแแแแ แแแแแญแแ แแแ แแแจแแแแ แแฃ 21 JDK แแแงแแแแแ
แแแกแฌแแแแแแแแก แแแฅแชแแแแ แแแกแฌแ แแแแก แแแแแงแฃแ แแก แแแแแแก แแแแแแแชแแ
แจแแแฅแแแแก IP-แแแกแแแแ แแแ แแแคแฃแซแแแแฃแแ แแแฅแชแแแแแก แแแ แแแแก แกแแกแขแแแ, แ แแแแแแช แกแแแแแแแแแแแแแแ แแแฌแแกแแแฃแแแแแแก แกแแจแฃแแแแแแก แแแกแชแแแก แแคแแฅแขแฃแ แแ แแแ แแแ แแ แแแแแขแ แแแแ แแแฅแชแแแแแก แฉแแขแแ แแแแก แแ แแชแแกแ. แกแแกแขแแแ แฃแแ แฃแแแแแงแแคแก แแ แแแแ แ แแแแก (แแแแแแแกแขแ แแขแแ แ แแ แแแฅแขแแ แ) แแแขแแ แคแแแกแก แกแแกแฌแแแแ แ แแกแฃแ แกแแแแก แกแแแแ แแแแแ, แแแฅแชแแแแแก แแแกแแแแแแแ แแ แแแแก แฃแแ แฃแแแแแกแแงแแคแแ, แ แแ แแแฅแชแแแแ แขแแ แแแแ แแฎแแแแ แแแแแแแก แแแแแฃแแแแแ แแฃแแแขแแ แแแแจแ.
2. แคแฃแแฅแชแแแแแแฃแ แ แแแแฎแแแแแแ - แซแแ แแแแแ แแฃแ-แแแแกแแแ (แแแแแฃแก แแฃแแฅแขแแแ)
I. แแแแแชแแแแ แแแแแกแแแ แแแแ แแแแ/แแแแแกแแแ
- แแแแฎแแแ แแแแแแแก แแแ แแแ (แแแแแขแแแ, แฌแแจแแ, แ แแแแฅแขแแ แแแ)
- แแฃแแแขแแ แแแแแก แแแ แแแ แแ IP แแแกแแแแ แแแแแก แแแแแญแแแ
- แแแฅแชแแแแแก แแแ แแแ แแ แ แแแแฅแขแแ แแแ
- แกแแกแขแแแแจแ แจแแกแแแ
- แแฃแแแขแแ แแแแแก แแ IP แแแกแแแ แแแแแก แแแฎแแ
- แแฆแแก แแแฅแชแแแแแก แแแฎแแ
- แแแฅแชแแแแแก แกแแแก แแแฎแแ
- แแแฅแชแแแแแก แแแฌแงแแแ/แแแกแ แฃแแแแ
- แแแฅแชแแแก แกแขแแขแฃแกแแก แแแฎแแ
- แแฃแแแขแแ แแแแแก แแแแแขแแแ
- IP แแแกแแแแ แแแแแก แแแแคแแแฃแ แแชแแ
- แแฃแแแขแแ แแแแแก แกแขแแขแฃแกแแก แแแแแขแแ แแแแ
- IP แแแกแแแแ แแแแแก แจแแแแฌแแแแ
- แแ แแแก แจแแแแฌแแแแ
- แแแฅแชแแแก แกแขแแขแฃแกแแก แแแขแแแแขแฃแ แ แแแแแฎแแแแ
- แฉแแขแแ แแแฃแแ แแแฅแชแแแแแก แแกแขแแ แแ
- แแแชแแแแแแ แแแฅแชแแแแแก แแฆแ แแชแฎแแ
- แกแขแแขแแกแขแแแแก แแแแแ แแ แแแ
- แแแแฎแแแ แแแแแก แแแแแแขแแคแแแแชแแ
- แ แแแแแแ แแแคแฃแซแแแแฃแแ แฌแแแแแแก แแแแขแ แแแ
- แแแฅแชแแแแแก แแแแ แแแแก แแแแแ แขแ csv แคแแ แแแขแจแ
แกแแกแขแแแ แฃแแแ แแแแแก แกแแแจแ แแแแ แแ แฅแแขแแฅแขแฃแ แแ แแแ แแแแแแแชแแแก แกแแฎแแ Java-แแ Spring Boot แคแ แแแแแแ แแแก แแแแแงแแแแแแ. แแแ แฃแแแ แจแแแแแแแแแก แกแแแ แจแ แแกแแแ:
แแแขแแ แคแแแกแฃแแ แจแ แ แฌแแ แแแแแแแแก แแแ-แแแขแแ แคแแแกแก, แจแแกแ แฃแแแแฃแแก Thymeleaf-แแก แจแแแแแแแแแ HTML/CSS Bootstrap5-แแก แแ Spring MVC-แแก แแแแแงแแแแแแ.
- Front-End แขแแฅแแแแแแแแแ:
- Thymeleaf - แกแแ แแแ แแก แแฎแแ แแก แแแแแแแฃแ แ HTML แจแแแแแแแแแก แจแแกแแฅแแแแแแ
- HTML/CSS (Bootstrap5) - แแแ แแแแ แแแก แกแขแ แฃแฅแขแฃแ แแกแ แแ แกแขแแแแก แจแแกแแฅแแแแแแ
- Javascript - แแ แแฃแแแ แจแ แแแแแแแฃแ แ แคแฃแแฅแชแแแแแแแก แแแกแแแแขแแแแแ
- แแแแขแ แแแแ แแแ:
- @RestController แแ @Controller แแแแขแแชแแแแ - HTTP แแแแฎแแแแแแแก แแแกแแแฃแจแแแแแแแ
- Validation - แแแแฎแแ แแแแแก แจแแงแแแแแแ แแแแแชแแแแแแก แแแแแแแชแแแกแแแแก
- RequestMapping โ URL แแแกแแแแ แแแแแก แแแ แจแฃแขแแแแชแแแกแแแแก
แแแแแแก แจแ แ แแแแชแแแก แกแแกแขแแแแจแ แจแแแแแแ แแแแแแแแก แแ แกแแ แแแกแแแก:
- Spring Boot แกแแ แแแกแแแ:
- @Service แแแแขแแชแแแ แแแแแจแแฃแแ แแแแกแแแ - แแแแแแก แแแแแแแก แแแแกแแฎแแ แชแแแแแแ
- Spring Security - แแฃแแแแแแคแแแแชแแแกแ แแ แแแขแแ แแแแชแแแก แฃแแ แฃแแแแแกแแงแแคแแ
- DTO (Data Transfer Objects):
- แแแแแชแแแแแแก แแแแแชแแแแกแแแแก แกแฎแแแแแกแฎแแ แจแ แแแแก แจแแ แแก
- Lombok แแแแขแแชแแแแ - แแแแแก แแแกแแแแ แขแแแแแแแ
แแแแแชแแแแ แจแ แ แฃแแ แฃแแแแแงแแคแก แแแแแชแแแแแแแ แฌแแแแแแก JPA-แก แแแแแงแแแแแแ:
- Spring Data JPA:
- Entity แแแแกแแแ - แแแแแชแแแแ แแแแแก แชแฎแ แแแแแแก แฌแแ แแแกแแแแแแแ
- Repository แแแขแแ แคแแแกแแแ - แแแแแชแแแแ แแแแแกแแแ แกแแแแฃแจแแแ
- JPA/Hibernate - แแแแแฅแข-แ แแแแชแแฃแ แ แแแแแแจแแ แแแแกแแแแก (ORM)
- แแแแแชแแแแ แแแแ:
- MySQL - แแแแแชแแแแแแก แจแแกแแแแฎแแ
- JDBC - แแแแแชแแแแ แแแแแกแขแแ แแแแจแแ แแกแแแแก
- แแแขแแ แแแแชแแแก แแแแ แแ
- แแแแแแ แ แแแแ แแ
- แแแฅแชแแแแแก แแแแ แแ
- แแฃแแแขแแ แแแแแก แแแ แแแแก แแแแ แแ
- แแแแฎแแแ แแแแแแแก แแแ แแแแก แแแแ แแ
- AuthController - แแแขแแ แแแแชแแแก แแแ แแแแกแแแแก
- LectureController - แแแฅแชแแแแแก แแแ แแแแกแแแแก
- RoomController - แแแแฎแแแแก แแแ แแแแกแแแแก
- MainController - แแแแแแ แ แแแแ แแแก แแแ แแแแกแแแแก
- User โ แแแแฎแแแ แแแแแก แแแแแแ
- Lecture โ แแแฅแชแแแก แแแแแแ
- Room โ แแฃแแแขแแ แแแก แแแแแแ
- Role - แ แแแแก แแแแแแ
- LectureStatus โ แแแฅแชแแแก แกแขแแขแฃแกแแก แแแแแแ
- UserService โ แแแแฎแแแ แแแแแแแก แแแ แแแแก แแแแแแ
- LectureService โ แแแฅแชแแแแแก แแแ แแแแก แแแแแแ
- RoomService โ แแแแฎแแแแก แแแ แแแแก แแแแแแ
- IpVerificationService โ IP แแแกแแแแ แแแแแก แจแแแแฌแแแแแก แแแแแแ
- UserDto - แแแแฎแแแ แแแแแแแก แแแแแชแแแแ แแแแแชแแแแกแแแแก
- LectureDto - แแแฅแชแแแก แแแแแชแแแแ แแแแแชแแแแกแแแแก
- RoomDto - แแฃแแแขแแ แแแก แแแแแชแแแแแแก แแแแแชแแแแกแแแแก
- UserRepository - แแแแฎแแแ แแแแแแแแ แกแแแฃแจแแแ
- LectureRepository - แแแฅแชแแแแแแ แกแแแฃแจแแแ
- RoomRepository - แแแแฎแแแแแ แกแแแฃแจแแแ
- RoleRepository - แ แแแแแแแ แกแแแฃแจแแแ
แแแแแชแแแแ แจแ แ แแแแชแแแก แแแแแชแแแแแแแ แฌแแแแแแก แแแแฃแแก แแ แแแแแชแแแแ แแแแแก, แ แแแแแแแแฃแแก MySql-แแ. แกแขแฃแแแแขแแแแก แแแแแชแแแแ แแแแ แจแแแแแแ แฎแฃแแ แชแฎแ แแแแกแแแ (lectures, roles, rooms, users, user_roles), แแฎแแแแ แแแแแ แแแ. แแกแแแ แแแงแแแแแแแ แแ แแแแแก แจแแฅแแแแก แกแแ แแแขแแก แแแแแแแแ:
-- แแแแแก แจแแฅแแแ
CREATE DATABASE tlat;
USE tlat;
-- แแแฅแขแแ แแก แแแแแแแก แแแแแแแแ
CREATE TABLE lectures (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
date DATE,
end_time TIME,
lecturer VARCHAR(255),
start_time TIME,
subject VARCHAR(255),
room_id BIGINT,
is_active BOOLEAN,
session_end_time DATETIME,
session_start_time DATETIME,
status VARCHAR(50)
);
-- แ แแแแแแก แแแแแแแก แแแแแแแแ
CREATE TABLE roles (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255)
);
-- แแแแฎแแก แแแแแแแก แแแแแแแแ
CREATE TABLE rooms (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
ip_address VARCHAR(255),
room_number VARCHAR(255)
);
-- แแแแฎแแแ แแแแแแแก แแแแแแแก แแแแแแแแ
CREATE TABLE users (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
address VARCHAR(255),
age INT,
email VARCHAR(255),
gender VARCHAR(255),
name VARCHAR(255),
password VARCHAR(255),
phone VARCHAR(255),
username VARCHAR(255)
);
-- users_roles แชแฎแ แแแแก แจแแฅแแแ (many-to-many แฃแ แแแแ แแแแแกแแแแก)
CREATE TABLE users_roles (
user_id BIGINT,
role_id BIGINT,
PRIMARY KEY (user_id, role_id),
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (role_id) REFERENCES roles(id)
);
-- แแแแฃแแแกแฎแแแแ แ แแแแแแก แฉแแกแแ
INSERT INTO roles (name) VALUES
('ROLE_ADMIN'),
('ROLE_USER');
-- foreign key แจแแแฆแฃแแแแก แแแแแขแแแ lectures แชแฎแ แแแจแ room_id แกแแแขแแกแแแแก
ALTER TABLE lectures
ADD CONSTRAINT fk_lecture_room
FOREIGN KEY (room_id) REFERENCES rooms(id);