QUESTIONS? CALL: (+84) 24 666 026 12

HiveTech Solutions

HiveTech Solutions

HiveTech is a technology company focus on AI and big data technologies for educational purposes.

T (+84) 24 666 026 12
Email: contact@hivetech.vn

HiveTech JSC
No. 98 Hoang Quoc Viet Str, Cau Giay Dist, Ha Noi

Open in Google Maps
  • HOME
  • SERVICES
  • OUR MISSIONS & VALUES
  • PARTNERS
  • CONTACT
  • NEWS & EVENTS
  • RECRUITMENTS
  • Home
  • Uncategorized
  • Project spring boot Crud
2023-05-31

Project spring boot Crud

by Thao Nguyen / Thursday, 03 June 2021 / Published in Uncategorized

Trong một ứng dụng web thông thường, crud là công việc không thể thiếu.

I.Giới thiệu:

Trước hết

Database: Nơi lưu trữ dữ liệu.

Crud:

+ Create: tạo một đối tượng mới và lưu lại vào database.

+ Read: Lấy ra đối tượng đã được lưu trước đó từ database để hiển thị ra ngoài ứng dụng.

+ Update: Thay đổi thông tin của đối tượng đã lưu trước đó rồi lưu lại vào database.

+ Delete: Xoá đối tượng đã lưu khỏi database. 

II. Tạo project

Công nghệ sử dụng:

JDK 11.0.5

Spring Data JPA

Spring Boot 2.4.5

MariaDB 10.4.*

1.  Tạo Project Spring Boot:

2. Lựa chọn dependencies:

3. Tạo database trong Mariadb:

4. Thêm các Thuộc tính cần thiết vào file application.properties

spring.datasource.url:  đường dẫn database cần kết nối;

spring.datasource.username: user name có thể truy cập vào database;

spring.datasource.password: mật khẩu của user;

spring.datasource.driver-class-name: driver kết nối mariadb.

5. Tạo các package chính:


Model: Nơi ta lưu đối tượng.

Repository: Nơi thực hiện tác vụ liên quan đến database.

Service: Nơi xử lí các nghiệp vụ chính.

Controller; Nơi điều hướng.

Exception: Nơi xử lý lỗi 

Ultils: Hàm hỗ trợ

6. exception

a. ProjectException

Tạo Class custom exception kế thừa từ RuntimeException 

b. ExceptionResponse

Đây là dữ liệu trả về nếu bắt được lỗi.

c.ProjectExceptionAdvice

Đây là nơi bắt ProjectException nếu được ném ra.

@ControllerAdvice đánh dấu nơi xử lý exception.

@ExceptionHandler bắt exception xảy ra.

7.Utils

Ở đây chứa các hàm bổ trợ.

a. TimeUtils

Dùng để chuyển định dạng thời gian từ String sang LocalDate với format String dạng d/M/yyyy

b.ValidUtils

Chứa các hàm validate email và phone number

8. model

a. User


@Entity: để đánh dấu đây là một đối tượng có thể lưu vào database

@Id: đánh dấu khoá chính của đối tượng

@GeneratedValue: đánh dấu tự động tạo id khi tạo đối tượng user mới để lưu vào database.

@Data: tự động tạo các hàm get, set, hashcode,…

@Column: cột trong database;

length: độ dài kí tự của cột

unique: dữ liệu lưu vào phải khác nhau

b. UserDTO

UserDTO là dữ liệu giao tiếp với phía giao diện, ở đây cần có dto để dễ dàng kiểm tra các điều kiện cần thiết trước khi đưa vào database, tránh gặp lỗi.

9. repository chúng ta tạo UserRepository

Chúng ta dùng JpaRepository để tự động tạo ra câu lệnh SQL tương ứng cho các tác vụ crud vào database.

10. service

Tầng xử lý nghiệp vụ

a. UserService

Để định nghĩa các phương thức cần sử dụng

findAll: lấy ra tất cả các User trong database.

findById: lấy ra User có id cụ thể

create: Tạo mới User.

update: Cập nhật User đã có

deleteById: Xoá user có trong database có id cụ thể.

convert: Kiểm tra điều kiện và chuyển từ UserDTO → User

b. UserServiceImpl


UserServiceImpl để thực hiện các phương thức đã được định nghĩa bởi UserService

Ở đây chúng ta Autowrited userRepository để thực hiện việc crud vào database.

10. package controller tạo UserController

Nhận dữ liệu từ api gửi lên và gọi Service sử lí các nghiệp vụ tương ứng rồi trả lại.

@RestController để đánh dấu controller và có thể nhận và gửi giữ liệu bằng json

@RequestParam để lấy param có trong đường dẫn ở request gửi lên

@RequestBody để lấy body của request

III. Ví dụ:

Dùng PostMan để thực hiện kiểm tra

+ Create User:

Gửi một request dạng json vào đường dẫn create-user để tạo một user mới trong database.

Kết quả trả về:

Bảng user trong database đã được thêm 

+ List All User:

Dữ liệu trả về: 

+ Show detail User:

ở đây id=2 là param được lấy bởi @RequestParam trong controller.

Dữ liệu trả về

+ Update User:

Trong database, user có id = 2 đã được sửa

+ Delete User:

database đã xoá.

Nguyễn Quốc Vinh

  • Tweet

About Thao Nguyen

What you can read next

GraphQL
Senior/Lead Business Analyst
File upload trong Spring

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Thực Tập Sinh Nhân Sự Tổng Hợp

    1. Mô Tả Công Việc Hỗ trợ các công việc hành ch...
  • DevOps Engineer (AWS/Azure/GCP)

    1. Mô Tả Công Việc Nghiên cứu, xây dựng và triể...
  • Tester/Quality Assurance Engineer

    1. Mô Tả Công Việc Tham gia các dự án có domain...
  • Giảng Viên Tiếng Anh nội bộ

    1. Mô Tả Công Việc Trực tiếp tham gia giảng dạy...
  • CHỦ TỊCH HIVETECH VIỆT NAM NGÔ THÀNH LÊ: “HÃY TRỞ THÀNH MỘT NHÂN VIÊN GIỎI TRƯỚC KHI KHỞI NGHIỆP”

    Từ bỏ vị trí công việc ổn định tại doanh nghiệp...

Recent Comments

  • hivequeen on Intern/Fresher ReactJS/VueJS Developer
  • Khuất Anh Tuấn on Intern/Fresher ReactJS/VueJS Developer

Archives

  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • March 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • November 2019
  • September 2019
  • July 2019
  • June 2019

Categories

  • Mobile
  • Networking
  • Posts
  • Recruitment
  • Sale
  • Technology
  • Uncategorized

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Featured Posts

  • Thực Tập Sinh Nhân Sự Tổng Hợp

    0 comments
  • DevOps Engineer (AWS/Azure/GCP)

    0 comments
  • Tester/Quality Assurance Engineer

    0 comments
  • Giảng Viên Tiếng Anh nội bộ

    0 comments
  • CHỦ TỊCH HIVETECH VIỆT NAM NGÔ THÀNH LÊ: “HÃY TRỞ THÀNH MỘT NHÂN VIÊN GIỎI TRƯỚC KHI KHỞI NGHIỆP”

    0 comments
  • DISCLAIMER
  • SUPPORT POLICY
  • LEGAL
HiveTech Solutions

© HiveTech 2019 All rights reserved

TOP