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