게시글 등록

<insert id="regNotice">
INSERT INTO BOARD (
BOARD_NUM
, BOARD_TITLE
, BOARD_CONTENT
, BOARD_WRITER
, BOARD_MENU_CODE
<if test="isImportant != null">
, IS_IMPORTANT
</if>
) VALUES (
(SELECT 'BOARD_'||LPAD(NVL(MAX(TO_NUMBER(SUBSTR(BOARD_NUM, 7))), 0) + 1, 3, '0')
FROM BOARD)
, #{boardTitle}
, #{boardContent}
, 20230517
, 'BOARD_MENU_001'
<if test="isImportant != null">
, #{isImportant}
</if>
)
</insert>
제목, 내용, 중요글 체크박스 input 태그
작성자는 아직 로그인 기능 구현 전이라 임의로 넣어줌
메뉴코드도 input 태그 hidden으로 넣어줄 예정
중요글 체크박스가 체크되지 않았을때는 쿼리 실행되지 않게 if문 삽입함 (DB에서 IS_IMPORTANT 컬럼은 DEFAULT 값 ‘N’으로 바꿈)
(같은 맥락으로 IS_PRIVATE 컬럼 DEFAULT 값도 ‘N’으로 바꿈)
비밀글 같이 다른 컬럼도 if문 넣어서 동적 쿼리로 모든 게시판 글 등록을 이 쿼리로 쓸지, 각 게시판마다 다른 쿼리 쓰는게 좋을지는 첨부파일 기능까지 구현하고 다시 생각해보자
조회수는 0, 상태값은 1(등록), 비밀글은 ‘N’, 좋아요 개수는 0 값이 디폴트 값으로 들어가는데 공지사항 게시판에는 비밀글이랑 좋아요 기능 안 쓸거임
게시글 목록

<!-- 공지사항 글 목록 조회 -->
<!-- 상태값 1(등록) -->
<select id="getNoticeList" resultMap="board">
SELECT BOARD_NUM
, BOARD_TITLE
, BOARD_WRITER
, TO_CHAR(BOARD_DATE, 'YYYY-MM-DD HH24:MI') BOARD_DATE
, BOARD_VIEW
, ENAME
FROM BOARD, EMP
WHERE BOARD_MENU_CODE = 'BOARD_MENU_001'
AND BOARD_STATUS = 1
AND BOARD_WRITER = EMPNO
ORDER BY BOARD_NUM DESC
</select>
<!-- 공지사항 중요글 목록 조회 -->
<select id="getNoticeImportantList" resultMap="board">
SELECT BOARD_NUM
, BOARD_TITLE
, BOARD_WRITER
, TO_CHAR(BOARD_DATE, 'YYYY-MM-DD HH24:MI') BOARD_DATE
, BOARD_VIEW
, ENAME
FROM BOARD, EMP
WHERE BOARD_MENU_CODE = 'BOARD_MENU_001'
AND IS_IMPORTANT = 'Y'
AND BOARD_STATUS = 1
AND BOARD_WRITER = EMPNO
ORDER BY BOARD_NUM DESC
</select>
중요글, 전체글 목록을 따로 조회해서 중요글은 상단에 번호 대신 중요 표시와 함께 띄워줌
작성일은 TO_CHAR로 년월일시분까지.
글 등록할 때 board_writer 컬럼에는 사원 테이블 pk인 사번이 들어가는데, 게시글 목록 작성자 칸에는 사원명이 뜨도록 EMP 테이블 조인해서 사원명 가져옴. boardVO에도 ename 변수 추가함.
고민
게시판은 총 세 개인데 데이터베이스 테이블은 하나로 쓰고 대신 게시판 메뉴 테이블의 메뉴코드를 외래키로 걸어서 각 게시판마다 메뉴코드가 다르게 설계했다.
그러다보니… 메뉴마다 쿼리를 각자 쓰기보다 조회, 글 등록, 수정, 삭제 등 기능이 같으면 같은 쿼리를 쓰고 싶은데 메뉴코드 다루는 게 쉽지 않다.
'프로젝트' 카테고리의 다른 글
| 9. 공지사항 게시판 (이전글, 다음글 보기) (0) | 2023.05.18 |
|---|---|
| 8. 공지사항 게시판 (게시글 상세 조회, 조회수 증가) (0) | 2023.05.18 |
| 6. 프로젝트 시 깃허브 작업 사이클 (0) | 2023.05.18 |
| 5. 깃허브 Branch (0) | 2023.05.17 |
| 4. 깃허브 Push & Pull (0) | 2023.05.17 |