본문 바로가기

데이터베이스/ORACLE

[ORACLE] t_board 테이블 생성 및 Insert / 답글 기능을 위한 변경 사항

SELECT * FROM TAB;

CREATE TABLE t_board(
    no number(5) primary key
    , title varchar2(1000) not null
    , writer varchar2(200) not null
    , content varchar2(2000) not null
    , view_cnt number(5) default 0
    , reg_date date default sysdate
);

CREATE SEQUENCE seq_t_board_no;
alter sequence seq_t_board_no nocache;

insert into t_board(no, title, writer, content)
values(seq_t_board_no.nextval, '제목입니다.', 'hong', '내용입니다.');

insert into t_board(no, title, writer, content)
values(seq_t_board_no.nextval, '제목입니다.', 'jo', '내용입니다.');

select * from t_board;

COMMIT;

 


+ 답글 기능 (depth)을 위한 조치

 

 

1. 테이블 및 시퀀스 삭제

 

drop table t_board cascade constraint;
drop sequence seq_t_board_no;

 

2. 테이블 재생성 (컬럼 2개 포함) 및 시퀀스 생성

originid, groupid 컬럼 추가

 

CREATE TABLE t_board(
    no number(5) primary key
    , originid number(5) not null
    , groupid number(5) not null
    , title varchar2(1000) not null
    , writer varchar2(200) not null
    , content varchar2(2000) not null
    , view_cnt number(5) default 0
    , reg_date date default sysdate
);

CREATE SEQUENCE seq_t_board_no;
alter sequence seq_t_board_no nocache;


insert into t_board(no, title, originid, groupid, writer, content)
values(seq_t_board_no.nextval, '반가워요', 1, 1, 'hong', '내용입니다.');

insert into t_board(no, title, originid, groupid, writer, content)
values(seq_t_board_no.nextval, '은행 최고네요', 2, 1, 'jo', '내용입니다.');

select * from t_board;

COMMIT;

3. BoardVO 수정

originid, groupid 변수 추가, 게터 & 세터 추가, 생성자 추가

 

4. BoardDAO 수정

- selectByNo()

--- 쿼리 내 originid, groupid 추가

- selectAllBoard()

--- 쿼리 내 originid, groupid 추가

- selectAllBoard(String id)

--- 쿼리 내 originid, groupid 추가

- insertBoard(BoardVO board)

--- 해당 메소드를 사용하는 Controller 찾아서 boardVO.setOriginid("int 값"),  boardVO.setGroupid("int 값") 해줘야 함

--- 이후 insertBoard(BoardVO board) 메소드 내 쿼리 수정해야 함. pstmt.setString(5, board.getWriter()); 등

 

5. board 답글 관련 컨트롤러 생성.. 혹은 기존 컨트롤러 수정 해야할듯?

- WriteReFormController

- WriteReProcessController

- selectAllBoard()

--- originid 오름차순 groupid 내림차순

- selectAllBoard(String id)

--- originid 오름차순 groupid 내림차순

 

6. 테스트