+1

Tạo một REST APIs bằng Java Spring Boot và sử dụng MySQL làm cơ sở dữ liệu

Bước 1: Chuẩn bị môi trường

Cài đặt Java Development Kit (JDK). Cài đặt IntelliJ IDEA hoặc IDE Java khác (không bắt buộc nhưng được khuyến nghị). Cài đặt MySQL.

Bước 2: Tạo dự án Spring Boot mới

Bước này bạn có thể thực hiện bằng cách truy cập Spring Initializr hoặc sử dụng IntelliJ IDEA để tạo một dự án mới với Spring Initializr.

Bước 3: Tạo model User

import javax.persistence.*;

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false, unique = true)
    private String username;

    @Column(nullable = false)
    private String password;

    // Constructors, getters, setters
}

Bước 4: Tạo UserRepository

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}

Bước 5: Tạo Controller

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/users")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @GetMapping
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    @GetMapping("/{id}")
    public ResponseEntity<User> getUserById(@PathVariable(value = "id") Long userId) {
        User user = userRepository.findById(userId)
                .orElseThrow(() -> new ResourceNotFoundException("User not found with id: " + userId));
        return ResponseEntity.ok().body(user);
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userRepository.save(user);
    }

    @PutMapping("/{id}")
    public ResponseEntity<User> updateUser(@PathVariable(value = "id") Long userId,
                                           @RequestBody User userDetails) {
        User user = userRepository.findById(userId)
                .orElseThrow(() -> new ResourceNotFoundException("User not found with id: " + userId));

        user.setUsername(userDetails.getUsername());
        user.setPassword(userDetails.getPassword());

        final User updatedUser = userRepository.save(user);
        return ResponseEntity.ok(updatedUser);
    }

    @DeleteMapping("/{id}")
    public ResponseEntity<Void> deleteUser(@PathVariable(value = "id") Long userId) {
        User user = userRepository.findById(userId)
                .orElseThrow(() -> new ResourceNotFoundException("User not found with id: " + userId));

        userRepository.delete(user);
        return ResponseEntity.ok().build();
    }
}

Bước 6: Tạo Exception Handler

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

@ResponseStatus(value = HttpStatus.NOT_FOUND)
public class ResourceNotFoundException extends RuntimeException {
    public ResourceNotFoundException(String message) {
        super(message);
    }
}

Bước 7: Cấu hình cơ sở dữ liệu MySQL

Thêm cấu hình cơ sở dữ liệu vào application.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/my_database
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

Bước 8: Chạy ứng dụng

Chạy ứng dụng Spring Boot của bạn và bạn sẽ có một RESTful API đơn giản để quản lý người dùng thông qua MySQL.

Đây chỉ là một hướng dẫn cơ bản và có thể được mở rộng để thêm các tính năng khác như xác thực người dùng, phân quyền, xác thực JWT, và nhiều hơn nữa. Chúc bạn thành công!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí