-- 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 어떤 거 사용할지 명확하지 않아서
프로필 사진 변경 완료!
'Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원 > 10월' 카테고리의 다른 글
22.10.10 - [ 휴 강 ] 한글날 대체 휴일 휴강 [ 이력서 작성 및 파이널 프로젝트 화면 작업 ] (0) | 2022.10.12 |
---|---|
22.10.07 - [ Spring ] 게시글 수정하기, 페이징 처리하기 (0) | 2022.10.12 |
22.10.06 - [ Spring ] 일반 게시판 { 목록, 글 작성, 인코딩, 상세 페이지, 조회 수, 경로 변수 } (0) | 2022.10.07 |
22.10.05 - [ Spring ] Ajax 활용 { 아이디 중복 체크, 숫자, json, 한글 인코딩 } + @RestController (0) | 2022.10.07 |
22.10.03 - [ 휴강 ] 개천절 휴강 - [ ui 작업진행 ( Figma )] (0) | 2022.10.06 |