제시해 주신 MyBatis 매퍼 코드는 게시판 CRUD(Create, Read, Update, Delete) 기능을 구현한 표준적인 형태입니다.
이 sample 네임스페이스 매퍼 파일은 게시글(TB_BOARD)과 첨부 파일(TB_FILE)을 관리하는 데 필요한 모든 SQL 쿼리를 담고 있습니다.
| ID | 역할 | 쿼리 타입 | 설명 |
|---|---|---|---|
selectBoardList |
게시글 목록 조회 | SELECT |
페이징(common.pagingPre, common.pagingPost 포함) 및 동적 검색 조건을 적용하여 게시글 목록을 조회합니다. |
insertBoard |
게시글 등록 | INSERT |
SEQ_TB_BOARD_IDX.NEXTVAL 시퀀스를 사용하여 게시글을 새로 등록합니다. |
updateHitCnt |
조회수 증가 | UPDATE |
특정 게시글의 HIT_CNT를 1 증가시킵니다. |
selectBoardDetail |
게시글 상세 조회 | SELECT |
특정 게시글의 상세 내용을 조회합니다. |
boardUpdate |
수정 화면 조회 | SELECT |
수정 페이지에 기존 데이터를 채우기 위해 게시글 상세 내용을 조회합니다. |
updateBoard |
게시글 수정 | UPDATE |
제목과 내용을 실제 DB에 수정(업데이트)합니다. |
deleteBoard |
게시글 삭제 | UPDATE |
게시글을 DB에서 영구 삭제하지 않고, 상태를 변경합니다. (소프트 삭제) |
| ID | 역할 | 쿼리 타입 | 설명 |
|---|---|---|---|
insertFile |
파일 정보 등록 | INSERT |
첨부 파일 정보를 TB_FILE 테이블에 등록합니다. |
selectFileList |
파일 목록 조회 | SELECT |
특정 게시글에 연결된 활성화된 파일 목록을 조회합니다. |
deleteFileList |
첨부 파일 삭제 처리 | UPDATE |
특정 게시글의 모든 파일의 DEL_GB를 'Y'로 변경합니다 (게시글 수정 시 사용). |
updateFile |
첨부 파일 활성화 | UPDATE |
파일의 DEL_GB를 'N'으로 변경합니다 (게시글 수정 시 기존 파일 유지). |
deleteBoard 쿼리 분석 (소프트 삭제)deleteBoard 쿼리는 삭제 기능이 맞습니다. 하지만 물리적 삭제가 아닌, '소프트 삭제(Soft Delete)'를 구현하고 있습니다.
일반적으로 DB에서 데이터를 지우는 방식은 두 가지가 있습니다.
DELETE FROM TB_BOARD WHERE IDX=#{IDX} 쿼리를 사용하여 해당 행(Row)을 데이터베이스 테이블에서 영구적으로 제거합니다.DEL_GB = Delete Group By, 삭제 여부)의 값을 **'Y'(Yes)**로 변경합니다.SQL
UPDATE TB_BOARD SET DEL_GB = 'Y' WHERE IDX=#{IDX}
이 쿼리는 다음과 같이 해석됩니다.