<aside> 📌 우리는 GET API와 POST API를 만드는 방법을 배웠습니다. 👍 추가적인 API 들을 만들어 보며 API 개발에 익숙해져 봅시다!
</aside>
CREATE TABLE fruit
(
id BIGINT AUTO_INCREMENT,
name VARCHAR(20),
warehousing_date DATE,
price BIGINT,
is_sold BOOLEAN DEFAULT FALSE,
PRIMARY KEY (ID)
);


Controller
@RestController
public class FruitController {
private final FruitService fruitService;
public FruitController(JdbcTemplate jdbcTemplate) {
this.fruitService = new FruitService(jdbcTemplate);
}
@PostMapping("/api/v1/fruit")
public void saveFruit(@RequestBody FruitCreateRequest request)
{
fruitService.saveFruit(request);
}
}
Dto
public class FruitRequest {
private String name;
private LocalDate warehousingDate;
private long price;
...
}
Service
@Service
public class FruitService {
private final FruitRepository fruitRepository;
public FruitService(JdbcTemplate jdbcTemplate) {
this.fruitRepository = new FruitRepository(jdbcTemplate);
}
public void saveFruit(FruitCreateRequest request) {
fruitRepository.saveFruit(request.getName(), request.getWarehousingDate(), request.getPrice());
}
}
Repository
@Repository
public class FruitRepository {
private final JdbcTemplate jdbcTemplate;
public FruitRepository(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public void saveFruit(String name, LocalDate warehousingDate, long price) {
String sql = "INSERT INTO fruit(name, warehousing_date, price) VALUES(?, ? ,?)";
jdbcTemplate.update(sql, name, warehousingDate, price);
}
}


해당 API에서 long을 사용하는 이유
: 더 넓은 범위의 값을 저장할 수 있으므로 큰 수를 다룰 때, 오버플로우를 방지하기 위해 long을 사용함.
