유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다.
IDE : IntelliJ
언어 : Java
DB : MySQL
빌드관리 도구 : Maven
OS : iOS
참고유튜브 : 메타코딩
insert, select에 이어 delete와 update까지 진행해보자.
update이기 때문에 PutMapping을 사용하고 user클래스에서 user_idx를 @id 어노테이션으로 지정했기에
파라미터값으로 id를 받고, user클래스 전체를 @RequestBody 어노테이션과 함께 받는다.
그 후 잘못된 Id값을 사용자가 입력한다면 수정할 수 없다는 메세지를 return 해준다.
비밀번호와 이메일값을 받아서 user클래스에 set해줘서 새로운 비밀번호와 이메일값으로 update를 진행한다.
insert,select,update가 /detail로 같지만 매핑이 달라서 알아서 다르게 구분할 수 있다.
@PutMapping("/detail/{id}")
@Transactional // 함수 시작할 때 작동이 되어서 함수 종료시에 자동 commit됨
public User update(@PathVariable int id, @RequestBody User requestUser) {
System.out.println("password : "+requestUser.getPassword());
System.out.println("email : "+requestUser.getEmail());
System.out.println("user_idx : "+id);
User user =userRepository.findById(id).orElseThrow(()->{
return new IllegalArgumentException( "수정할 수 없습니다");
});
user.setPassword(requestUser.getPassword());
user.setEmail(requestUser.getEmail());
return user;
}
body에 바꾸고자하는 비밀번호와 이메일을 작성하고 send를 해보면 postman에서 변한 값을 return 해준다.
postman에서도 바뀐 데이터를 확인 할 수 있고, DBeaver를 확인해보면 값이 변경된걸 확인할 수 있다.
↓
select와 마찬가지로 존재하지 않는 유저의 정보를 수정하고자 하면, 미리 설정해준대로 수정할 수 없다는 메시지가 출력된다.
다음은 delete를 테스트해보자.
@DeleteMapping을 해용해서 원하는 데이터를 삭제할 수 있다.
user클래스에서 @Id 어노테이션으로 user_idx를 지정했기때문에 id값을 파라미터로 받아서 사용한다.
이전과 마찬가지로 존재하지 않는 유저를 삭제하고하면 exception처리를 해준다.
@DeleteMapping("/detail/{id}")
public String delete(@PathVariable int id) {
try {
userRepository.deleteById(id);
}catch (EmptyResultDataAccessException exception){
return "없는 아이디입니다.";
}
return "아이디 삭제완료";
}
테스트를 위해서 postman에서 delete로 설정 후 주소값을 입력하고 삭제를 원하는 id값을 입력하고 send를 한다면 아이디 삭제완료라는 문자가 return되고 DBeaver에서 user_idx가 3인 유저는 삭제되게 된다.
'프로젝트 > Spring Boot 블로그프로젝트' 카테고리의 다른 글
[블로그프로젝트] 8. 회원가입, 로그인페이지 만들기 (0) | 2023.02.16 |
---|---|
[블로그프로젝트] 7. 메인화면 만들기 (0) | 2023.02.15 |
[블로그프로젝트] 5. JpaRepository 로 데이터 select 해보기 (0) | 2023.02.13 |
[블로그프로젝트] 4. JpaRepository 로 데이터 insert 해보기 (0) | 2023.02.09 |
[블로그프로젝트] 3-1. 테이블생성하기 2 (0) | 2023.02.09 |
댓글