Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원/10월

22.10.04 - [ Spring ] 회원정보수정 ( 프로필 사진 변경 )

giggs 2022. 10. 7. 10:12

 

 

-- INDEX --

 

 

1. 회원정보 수정 2. 기존파일 삭제 3. 신규파일 업로드 4. 회원번호얻기 5. DB 저장
파일처리가 필요하다. f.exists()
f.delete
fileUpload()
vo.setFilename()
!vo.getProfile.isEmpty()
input 태그 x
loginMember.getNo()
update 쿼리
select 쿼리

 

 

 


 

 

 

 

1. 회원정보 수정(프로필 사진 변경) 작업 시작

  • 회원정보 수정 – 결국 update작업이긴한데 파일 처리가 필요하다.
  • 파일처리하면서 해보자

 

 

 

1-1 : 파일처리 경우의 수 4가지 체크

 

 

 

 

실습은 

 

기존 파일 삭제하고

신규로 받은 파일 등록하는

 

경우로 진행

 

 

 

 


 

 

 

 

2. 기존 파일 삭제하기

 

 

2-1: req객체 이용하여 기존 파일 저장되어있는 경로 가져오고

  • req.getServletContext().getRealPath("/resources/upload/profile/);

 


 

2-2 : session 이용하여 로그인된 객체의 파일 네임 가져오고

  • session.getAttribute("loginMember");
  • loginMember.getFileName();

 


 

2-3 :파일이 존재한다면 파일 삭제하도록 진행

  • f.exists();
  • f.delete();

 

 

 

 

 


 

 

 

3. 신규 파일 업로드

  • 삭제했으면 새로운 파일 업로드해주기

 

 

 

3-1 : 서버 업로드 및 changeName 얻어오기

  • FileUploader.fileUpload( 파일, 경로 )
  • fileUpload 메서드는 내가 직접 만든 메서드로 작업 내용은
  • 파라미터로 입력받은 파일과 서버에 저장될 경로 받아서
  • 확장자+변경된 이름 만들고 서버 업로드 작업 처리한 후
  • 변경된 이름 리턴하는 함수

3-2 : 얻어온 changeName으로 vo 세팅해주기

  • vo.setFileName( changeName );
  • 이 이름으로 db에 저장될 것이다.

 

3-3 : 이 작업은 프로필 파일이 비어있지 않으면 진행하기

  • ! vo.getProfile().isEmpty()

 

 

 

 

 

 

 


 

 

 

 

4. 회원번호 얻어서 db 저장하러 가보자

  • vo에 파일 세팅은 끝! - 이제 어느 회원인지 vo 세팅해주고 db 작업 진행하면 된다.
  • where = 회원번호로 업데이트해줄 것인데
  • input 태그 hidden으로 클라이언트로부터 받는 것이 아니라 ( - 위험하다 )
  • 로그인 시 세션에 저장해놓은 회원 객체를 활용하여 회원번호 얻어오자.

 

 

 

 


 

 

 

5. db 저장하기 

  • db작업 진행
  • 2가지 쿼리 할 것이다. - 업데이트, 셀렉트

 

 

 

 

 

5-1 : update 쿼리 

  • 변경된 파일 정보를 update 해주어야 한다.

 


 

5-2 : select 쿼리

  • 셀렉트 또 해오는 이유?
  • update 하면 디비에 있는 값 변경된다. 
  • 우리는 세션에 있는 로그인 회원 객체의 값도 바꿔줘야 하니까 다시 한번 select 해오는 것이다.

 


 

5-3 :  서비스/ dao / mapper - 작업 진행

  • > 업데이트랑 셀렉트 작업이므로 @transectional 필요 없다.

 

 

 

 

vo가 아니라 String no 해서 번호 하나 전달해주는 것이 메서드 작성 의미와 맞다.

vo 사용하는 건 알겠는데 no,id,pwd 어떤 거 사용할지 명확하지 않아서

 

 


 

 

 


 

 

 

 

프로필 사진 변경 완료!