근데 서버에 올라간 파일 삭제는 구현 못 했다.
낼 회사 가서 해야지 그리고 삭제도 하면 CRUD 끝이다ㅋㅋ 행복
여튼 글 수정은 별로 글쓰기와 다를 게 없다
이건 Impl insert 코드인데 이 부분이랑 쿼리만 다르다
mapper.insertFile(files); // 여기서 fno 값이 자동으로 설정
int fno = files.getFno(); // 새롭게 생성된 fno 값을 가져오기
BoardEntity board = dto.toBoard();
board.setFno(fno);
mapper.insertBoard(board);
return;
update
mapper.insertFile(files); // 여기서 fno 값이 자동으로 설정
BoardEntity board = dto.toBoard();
board.setFno(dto.getFno());
mapper.updateBoard(board);
return;
insert 는 fno 를 files 에서 가져와서 넣어주는데
int fno = files.getFno(); << 여기서
update는
board.setFno(dto.getFno()); << dto 에 있는 걸 바로 넣어도 된다.
왜냐면 ... update 할 거니까.. 그럼 fno(파일 번호)는 같으니까....
끝...
이 아니고 한 것도 없는데 오래 걸린 이유는.... 뭐였지?
뭐였냐면 ... 오늘 오전만 해도 db 구조가 이렇지 않았다.
그래서 db 구조를 막 바꾸고 나니까 다 수정 해야해서 수정하니까 궁금해서 사수님께 여쭤봤다.
왜 file 이 board 를 참조하지 않고 (처음 DB 설계는 file 에 bno 컬럼이 있었고 그걸 외래키로 설정해서 board bno 를 참조하게 만들었다=종속적으로) board 가 file 을 참조 하는 게 좋냐고...
답은 확장성이다! 만약 내가 나중에 my page 와 같은 기능을 만든다고 가정하면 프로필 사진을 올리거나 여튼 파일 첨부 할 수 있는데 board 에 종속되면 좋은 구조가 아니니까... 그렇다.
fno 를 어떻게 활용할지 이렇게 알려주셨다 ,, 진짜 아이큐 네자리이신가? 덕분에 쉽게 했다.
Mapper
@Update("update board set title=#{title}, content=#{content}, updated_date=NOW() where bno=#{bno}")
public void updateBoard(BoardEntity board);
@Update("update files set org_file=#{org_file},stored_file=#{stored_file} where fno=#{fno}")
public void updateFile(FileEntity files);
update 쿼리 썼다 ... 별 거 없다. 근데 bno를;;;;
까먹고 front 에서 안 보내서;;;;;
오류도 안 나고;;;; 눈알 빠지게 찾고 디버깅 돌려보고;;; 콘솔 찍어보고;;;; 그러느라 이거 집와서 하는데 3시간 걸렸따;;; 난 아이큐 한자리다.