- [JSP] JSP로 CRUD 게시판 만들기 (1) - 패키지 및 DB 생성2024년 07월 15일
- Song hyun
- 작성자
- 2024.07.15.:22
728x90반응형[JSP] JSP로 CRUD 게시판 만들기 (1) - 패키지 및 DB 생성
1. 다이나믹 웹 프로젝트 및 패키지 만들기
(1) src/main/java: 컨트롤러, 모델, 레파지토리, 유틸 총 4개의 패키지 생성.
(데이터베이스 쿼리 전송 및 수정 담당)
(2) resources 폴더: css, 이미지, js 코드 폴더 생성 (프론트 담당)
(3) views 폴더: 게시판, 댓글, 로그인 JSP 폴더 생성 (1과 2를 연결, 사용자에게 화면 보여줌)
2. 라이브러리 적용하기
*사용 라이브러리
-HikariCP 라이브러리
-Jakarta-JSTL 라이브러리 2개
-Lombok 라이브러리
-MySQL connector Java 라이브러리
-SLF4J 라이브러리 (로깅용)
3. 테이블 설계하기 - MySQL 사용
(1) users 테이블: 사용자 정보 테이블
(2) board 테이블: 게시글 테이블
(3) comments 테이블: 댓글 테이블
drop database if exists db_tboard; create database db_tboard; use db_tboard; -- users 테이블 생성 create table users ( id int auto_increment primary key, username varchar(50) not null unique, password varchar(50) not null, email varchar(50) not null unique, created_at timestamp default current_timestamp ); -- board 테이블 생성 create table board( id int primary key auto_increment, user_id int, title varchar(255) not null, content text not null, created_at timestamp default current_timestamp, foreign key (user_id) references users(id) on delete cascade ); create table comments( id int auto_increment primary key, board_id int, user_id int, content text not null, created_at timestamp default current_timestamp, foreign key (board_id) references board(id) on delete cascade, foreign key (user_id) references users(id) on delete cascade ); -- 기존 테이블 삭제 시, auto-increment 초기화 truncate table comments; truncate table board; truncate table users; -- users 테이블에 샘플 데이터 삽입 INSERT INTO users (username, password, email) VALUES ('user1', 'asd123', 'user1@example.com'); INSERT INTO users (username, password, email) VALUES ('user2', 'asd123', 'user2@example.com'); INSERT INTO users (username, password, email) VALUES ('user3', 'asd123', 'user3@example.com'); -- board 테이블에 샘플 데이터 삽입 INSERT INTO board (user_id, title, content) VALUES (1, '자바의 장점', '자바는 플랫폼 독립적이며, 풍부한 라이브러리를 제공합니다.'); INSERT INTO board (user_id, title, content) VALUES (2, '파이썬과 머신러닝', '파이썬은 머신러닝에 최적화된 언어로, 다양한 라이브러리를 지원합니다.'); INSERT INTO board (user_id, title, content) VALUES (3, '자바스크립트와 웹 개발', '자바스크립트는 웹 개발의 핵심 언어로, 프론트엔드와 백엔드 모두에서 사용됩니다.'); INSERT INTO board (user_id, title, content) VALUES (1, 'Spring 프레임워크', 'Spring은 자바 기반의 강력한 애플리케이션 프레임워크입니다.'); INSERT INTO board (user_id, title, content) VALUES (2, 'Django를 활용한 웹 개발', 'Django는 파이썬 기반의 웹 프레임워크로, 빠른 개발이 가능합니다.'); INSERT INTO board (user_id, title, content) VALUES (3, 'React로 인터랙티브 웹 만들기', 'React는 사용자 인터페이스 구축을 위한 자바스크립트 라이브러리입니다.'); INSERT INTO board (user_id, title, content) VALUES (1, 'JSP와 서블릿', 'JSP와 서블릿을 사용하여 동적인 웹 페이지를 개발할 수 있습니다.'); INSERT INTO board (user_id, title, content) VALUES (2, 'Flask의 장점', 'Flask는 가벼운 파이썬 웹 프레임워크로, 유연성과 확장성이 뛰어납니다.'); INSERT INTO board (user_id, title, content) VALUES (3, 'Node.js로 서버 개발', 'Node.js는 자바스크립트를 사용하여 서버 측 애플리케이션을 개발할 수 있습니다.'); INSERT INTO board (user_id, title, content) VALUES (1, '첫 게시글 작성', '첫 게시글을 작성했습니다. 앞으로 자주 올리겠습니다.'); INSERT INTO board (user_id, title, content) VALUES (2, '두 번째 게시글', '두 번째 게시글입니다. 댓글 많이 달아주세요.'); INSERT INTO board (user_id, title, content) VALUES (3, '안녕하세요', '안녕하세요, 오늘도 즐거운 하루 되세요.'); -- comments 테이블에 샘플 데이터 삽입 INSERT INTO comments (board_id, user_id, content) VALUES (1, 2, '자바의 장점에 대해 잘 읽었습니다.'); INSERT INTO comments (board_id, user_id, content) VALUES (1, 3, '좋은 글 감사합니다.'); INSERT INTO comments (board_id, user_id, content) VALUES (2, 1, '파이썬과 머신러닝에 관한 글 잘 봤습니다.'); INSERT INTO comments (board_id, user_id, content) VALUES (2, 3, '유익한 정보 감사합니다.'); INSERT INTO comments (board_id, user_id, content) VALUES (3, 1, '자바스크립트에 대해 더 알고 싶습니다.'); INSERT INTO comments (board_id, user_id, content) VALUES (3, 2, '도움이 많이 되었습니다.'); select * from users; select * from board; select * from comments; drop table users; drop table board; drop table comments; select*from comments; delete from users where id=1; desc users;
*CASCADE란?
->CASCADE는 데이터베이스 관리 시스템에서 외래 키 제약 조건을 설정할 때 사용되는 옵션 중 하나이다. 이 옵션은 참조 무결성을 유지하기 위해, 부모 테이블의 행이 변경될 때 자식 테이블의 행이 자동으로 동일한 변경을 적용하게 만든다.
->CASCADE의 종류
(1) ON DELETE CASCADE
: 부모 테이블에서 행이 삭제될 때, 해당 행을 참조하는 모든 자식 테이블의 행들도 자동으로 삭제된다.
(2) ON UPDATE CASCADE
: 부모 테이블의 기본 키 값이 업데이트 될 때, 해당 기본 키를 참조하는 자식 테이블의 외래 키값도 자동으로 업데이트 된다.
728x90반응형'JSP > CRUD 게시판 만들기' 카테고리의 다른 글
[JSP] JSP로 CRUD 게시판 만들기 (5) - 댓글창 만들기 (0) 2024.07.17 [JSP] JSP로 CRUD 게시판 만들기 (4) - 게시판 만들기 (0) 2024.07.16 [JSP] JSP로 CRUD 게시판 만들기 (3) - JSP 파일 및 로그인 기능 만들기 (1) 2024.07.15 [JSP] JSP로 CRUD 게시판 만들기 (2) - DB 접근 기술 (0) 2024.07.15 다음글이전글이전 글이 없습니다.댓글