118 lines
3.7 KiB
Markdown
118 lines
3.7 KiB
Markdown
## Spring 4 + MyBatis 3 + MariaDB 기반 게시판 ##
|
|
본 샘플은 Spring 4 + MyBatis 3 + MariaDB (Maven) 기반으로 게시판을 만드는 과정을 단계별로 구현한 샘플이다.
|
|
|
|
자세한 설명은 [이곳에서](http://forest71.tistory.com/2) 얻을 수 있다.
|
|
|
|
박재욱(우사양반)님이 MariaDB를 ORACLE로 변환해서 구현하였고, [이곳에서](https://github.com/wodnr4330/board_sample_oracle) 얻을 수 있다.
|
|
|
|
각 내용은 다음과 같이 구성되었다.
|
|
|
|
### 1. board Step 1 (board1) ###
|
|
- List: 모든 게시물 출력
|
|
- Form: 사용자 입력 내용 저장
|
|
- Update: 사용자 입력 내용 수정
|
|
- Read: 사용자 입력 내용 보기
|
|
- Delete: 지정된 게시물 삭제
|
|
|
|
URL: http://localhost:8080/board/board1List
|
|
|
|
### 2. board Step 2 (board2) ###
|
|
- List: 페이징, 새로운 번호 부여
|
|
- Form: 입력/수정을 하나로
|
|
- Read: 조회수
|
|
- Delete: 삭제에서 숨기기로
|
|
|
|
URL: http://localhost:8080/board/board2List
|
|
|
|
|
|
### 3. board Step 3 (board3) ###
|
|
- List: 검색, 제목을 한 줄로 표시 ==> 페이징을 공통으로
|
|
- Form: 필수입력, 수정/저장 서비스 하나로
|
|
- Read: 스크립트 실행 방지
|
|
|
|
### 4. board Step 4 (board4) ###
|
|
- 자료실
|
|
|
|
- Step 4.1 (board41)
|
|
: CheckStyle, PMD, FindBugs 적용 후 수정
|
|
|
|
### 5. board Step 5 (board5) ###
|
|
- 댓글
|
|
|
|
### 6. board Step 6 (board6) ###
|
|
- 무한 댓글 (계층형)
|
|
|
|
### 7. board Step 7 (board7) ###
|
|
- JQuery 활용
|
|
|
|
|
|
### 8. board Step 8 (board8) ###
|
|
- 멀티 게시판
|
|
|
|
### 9. board Step 9 (board9) ###
|
|
- 멀티 게시판 관리자
|
|
|
|
### 개발 환경 ###
|
|
Programming Language - Java 1.7
|
|
IDE - Eclipse
|
|
DB - MariaDB
|
|
Framework - MyBatis, Spring 4
|
|
Build Tool - Maven
|
|
|
|
### 설치 ###
|
|
|
|
먼저 다음과 같은 테이블을 생성해야 한다.
|
|
|
|
CREATE TABLE TBL_BOARD (
|
|
BGNO INT(11), -- 게시판 그룹번호
|
|
BRDNO int(11) NOT NULL AUTO_INCREMENT, -- 글 번호
|
|
BRDTITLE varchar(255), -- 글 제목
|
|
BRDWRITER varchar(20), -- 작성자
|
|
BRDMEMO varchar(4000), -- 글 내용
|
|
BRDDATE datetime, -- 작성일자
|
|
BRDHIT INT, -- 조회수
|
|
BRDDELETEFLAG CHAR(1), -- 삭제 여부
|
|
PRIMARY KEY (BRDNO)
|
|
) ;
|
|
|
|
CREATE TABLE TBL_BOARDFILE (
|
|
FILENO INT(11) NOT NULL AUTO_INCREMENT, -- 파일 번호
|
|
BRDNO INT(11), -- 글번호
|
|
FILENAME VARCHAR(100), -- 파일명
|
|
REALNAME VARCHAR(30), -- 실제파일명
|
|
FILESIZE INT, -- 파일 크기
|
|
PRIMARY KEY (FILENO)
|
|
);
|
|
|
|
CREATE TABLE TBL_BOARDREPLY (
|
|
BRDNO INT(11) NOT NULL, -- 게시물 번호
|
|
RENO INT(11) NOT NULL, -- 댓글 번호
|
|
REWRITER VARCHAR(10) NOT NULL, -- 작성자
|
|
REMEMO VARCHAR(500) DEFAULT NULL, -- 댓글내용
|
|
REDATE DATETIME DEFAULT NULL, -- 작성일자
|
|
REDELETEFLAG VARCHAR(1) NOT NULL, -- 삭제여부
|
|
REPARENT INT(11), -- 부모 댓글
|
|
REDEPTH INT, -- 깊이
|
|
REORDER INT, -- 순서
|
|
PRIMARY KEY (RENO)
|
|
);
|
|
|
|
CREATE TABLE TBL_BOARDGROUP (
|
|
BGNO INT(11) NOT NULL AUTO_INCREMENT, -- 게시판 그룹번호
|
|
BGNAME VARCHAR(50), -- 게시판 그룹명
|
|
BGPARENT INT(11), -- 게시판 그룹 부모
|
|
BGDELETEFLAG CHAR(1), -- 삭제 여부
|
|
BGUSED CHAR(1), -- 사용 여부
|
|
BGREPLY CHAR(1), -- 댓글 사용여부
|
|
BGREADONLY CHAR(1), -- 글쓰기 가능 여부
|
|
BGDATE DATETIME, -- 생성일자
|
|
PRIMARY KEY (BGNO)
|
|
);
|
|
|
|
|
|
|
|
|
|
\board\src\main\webapp\WEB-INF 폴더에 있는 applicationContext.xml에서 적절한 DB 접속 정보를 입력하고 실행하면 된다.
|
|
|
|
|