본문 바로가기
✨ Back-end/Servlet

[Servlet / JSP / SQL / Template / Session] 회원 관리 폼 만들기 (1) - CREATE (DB 테이블 생성)

by 환풍 2023. 2. 27.
728x90
반응형

이번에는 Servlet / JSP / SQL / Template / Session을 모두 이용하여 게시판을 만들어 보려고한다.

패키지로 controller, service, sqlmap 그리고 webapp 하위 폴더로 view content, template, css 폴더를 만들어 확장성이 높은 게시판을 만들어보았다.

 

먼저 DB에 쿼리들을 작성해  회원테이블(Member), 게시판 테이블(Board), 댓글 정보 테이블(Reply) 을 생성해주었다.

회원 테이블 .SQL

1
2
3
4
5
6
7
8
9
10
11
--- 회원테이블 --
CREATE TABLE BOARD_MEMBER(
    MEM_ID VARCHAR2(50PRIMARY KEY
    , MEM_PW VARCHAR2(50NOT NULL
    , MEM_NAME VARCHAR2(50NOT NULL
    , MEM_TELL VARCHAR2(50)  -- '010-111-222'
    , MEM_EMAIL VARCHAR2(100
    , GENDER VARCHAR2(10NOT NULL -- '남 , 여'
    , IS_ADMIN VARCHAR2(10DEFAULT 'N'  -- 'Y', 'N'
    , JOIN_DATE DATE DEFAULT SYSDATE
);
cs

게시판 테이블.SQL

1
2
3
4
5
6
7
8
9
-- 게시판 테이블
CREATE TABLE BOARD(
    BOARD_NUM NUMBER PRIMARY KEY
    , TITLE VARCHAR2(100NOT NULL
    , WRITER VARCHAR2 (50REFERENCES BOARD_MEMBER(MEM_ID)
    , CREATE_DATE DATE DEFAULT SYSDATE
    , CONTENT VARCHAR2(100)
    , READ_CNT NUMBER DEFAULT 0
);
cs

댓글 정보 테이블.SQL

1
2
3
4
5
6
7
8
-- 댓글 정보 테이블
CREATE TABLE BOARD_REPLY(
    REPLY_NUM NUMBER PRIMARY KEY
    , CONTENT VARCHAR2(100NOT NULL
    , WRITER VARCHAR2(50REFERENCES BOARD_MEMBER (MEM_ID)
    , CREATE_DATE DATE DEFAULT SYSDATE
    , BOARD_NUM NUMBER REFERENCES BOARD(BOARD_NUM)
);
cs

이렇게 DB에 데이터를 저장시켜 놓고, 이클립스로 돌아와 DTO 클래스를 각각 만들어 준다.

BoardDTO.java (DTO패키지 클래스)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package dto;
 
public class BoardDTO {
 
    private int boardNum;
    private String title;
    private String writer;
    private String createDate;
    private String content;
    private int readCnt;
    
    public int getBoardNum() {
        return boardNum;
    }
    public void setBoardNum(int boardNum) {
        this.boardNum = boardNum;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getWriter() {
        return writer;
    }
    public void setWriter(String writer) {
        this.writer = writer;
    }
    public String getCreateDate() {
        return createDate;
    }
    public void setCreateDate(String createDate) {
        this.createDate = createDate;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public int getReadCnt() {
        return readCnt;
    }
    public void setReadCnt(int readCnt) {
        this.readCnt = readCnt;
    }
    
    
}
 
cs

MemberDTO.java (DTO패키지 클래스)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package dto;
 
public class MemberDTO {
    private String memId;
    private String memPw;
    private String memName;
    private String memTell;
    private String memEmail;
    private String gender;
    private String isAdmin;
    private String joinDate;
    
    public String getMemPw() {
        return memPw;
    }
    public void setMemPw(String memPw) {
        this.memPw = memPw;
    }
    public String getMemId() {
        return memId;
    }
    public void setMemId(String memId) {
        this.memId = memId;
    }
    public String getMemName() {
        return memName;
    }
    public void setMemName(String memName) {
        this.memName = memName;
    }
    public String getMemTell() {
        return memTell;
    }
    public void setMemTell(String memTell) {
        this.memTell = memTell;
    }
    public String getMemEmail() {
        return memEmail;
    }
    public void setMemEmail(String memEmail) {
        this.memEmail = memEmail;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public String getIsAdmin() {
        return isAdmin;
    }
    public void setIsAdmin(String isAdmin) {
        this.isAdmin = isAdmin;
    }
    public String getJoinDate() {
        return joinDate;
    }
    public void setJoinDate(String joinDate) {
        this.joinDate = joinDate;
    }
}
cs

ReplyDTO.java (DTO패키지 클래스)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package dto;
 
public class ReplyDTO {
    private int replyNum;
    private String content;
    private String writer;
    private String createDate;
    private int boardNum;
    
    public int getReplyNum() {
        return replyNum;
    }
    public void setReplyNum(int replyNum) {
        this.replyNum = replyNum;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getWriter() {
        return writer;
    }
    public void setWriter(String writer) {
        this.writer = writer;
    }
    public String getCreateDate() {
        return createDate;
    }
    public void setCreateDate(String createDate) {
        this.createDate = createDate;
    }
    public int getBoardNum() {
        return boardNum;
    }
    public void setBoardNum(int boardNum) {
        this.boardNum = boardNum;
    }
}
cs

DB 데이터와 JAVA 클래스 데이터를 만들어 놨으니 남은건 연동시켜서 주고받는지 확인해보자.
그 전에 템플릿을 이용해 화면 분할을 해볼 것이다.
728x90
반응형

댓글