SpringBoot Server/API
JDBC 예제 - 유저관리 APl DELETE
ssury94
2024. 12. 22. 20:11

https://maeilcoding.tistory.com/117
예제 - 유저관리 API GET All
https://maeilcoding.tistory.com/116 예제 - 유저관리 API GET idhttps://maeilcoding.tistory.com/115 Controller, DAO, DTO 알아보기 // 예제 - 유저관리 API POSTDAO (Data Access Object) 란?데이터베이스나 기타 영속성 메커니즘에
maeilcoding.tistory.com
마지막으로 유저 삭제 API를 만들어보겠습니다.
유저 이름과 이메일을 관리하는 API만들기 예제 // todo 5 deletUser
1. 명세서 확인


2. Postman에 리퀘스트 작성

3. Controller에서 deletUser 메서드 작성 시작
//todo 5 deleteUser
@DeleteMapping("/api/users/{id}")
deleteUser(@PathVariable long id)
4. DAO에서 deletUser 메서드 작성
//todo Delete
public int deleteUser(long id) {
String sql = "DELETE FROM user\n" +
"WHERE id=?;";
return jdbcTemplate.update(sql, id);
}
JdbcTemplate의 update() 메서드 호출:
jdbcTemplate.update()는 SQL 쿼리를 실행하고, 영향을 받은 행(row)의 개수를 반환합니다.
내부적으로 다음 과정을 수행합니다:
데이터베이스 연결 풀(DataSource)에서 커넥션을 가져옵니다.
SQL 쿼리를 실행하여 삭제 작업을 수행합니다.
삭제된 행의 수를 반환합니다.
커넥션을 반환합니다.
예를 들어, ID가 1인 사용자가 삭제되면 반환값은 1이 됩니다. 만약 해당 ID가 없으면 반환값은 0이 됩니다
5. 명세서 요구사항에 status만 필요로 한다. DTO는 만들어뒀던 UserResDTO로 충분
6. Controller 메서드 마저 완성
//todo 5 deleteUser
@DeleteMapping("/api/users/{id}")
public ResponseEntity<UserResDTO> deleteUser(@PathVariable long id) {
try {
int result = userDAO.deleteUser(id);
if (result > 0) {
return ResponseEntity.status(200).body(new UserResDTO("success"));
} else {
return ResponseEntity.status(500).body(new UserResDTO("fail"));
}
} catch (Exception e) {
return ResponseEntity.status(400).build();
}