๊ฒ์๊ธ ์กฐํ
๊ฒ์๊ธ ์กฐํ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํฉ๋๋ค.
ํ๋ฉด
์์ ์์
1.
read.jsp
2.
board.sql
3.
Board.java
4.
BoardDAO.java
5.
BoardService.java
6.
BoardServiceImpl.java
7.
BoardServlet.java
์ฝ๋
read.jsp
<%@ include file="/layout/jstl.jsp" %>
<%@ include file="/layout/common.jsp" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>project๐ป - ALOHA CLASS๐ด</title>
<jsp:include page="/layout/meta.jsp" />
<jsp:include page="/layout/link.jsp" />
</head>
<body>
<jsp:include page="/layout/header.jsp" />
<%-- [Contents] ######################################################### --%>
<main>
<div class="container mt-5">
<h2 class="mb-4">๊ฒ์๊ธ ์กฐํ</h2>
<form action="">
<input type="hidden" name="id" value="${board.id}" />
<div class="mb-3">
<label for="title" class="form-label">์ ๋ชฉ</label>
<input type="text" class="form-control" id="title" name="title" value="${board.title}" required>
</div>
<div class="mb-3">
<label for="username" class="form-label">์์ฑ์</label>
<input type="text" class="form-control" id="username" name="username" value="${board.user.name}" readonly>
</div>
<div class="mb-3">
<label for="content" class="form-label">๋ด์ฉ</label>
<textarea class="form-control" id="content" name="content" rows="6" required>${board.content}</textarea>
</div>
<div class="d-grid gap-2 mt-4">
<a href="${ root }/board/update?id=${ board.id }" class="btn btn-primary">์์ </a>
<a href="${ root }/board/list" class="btn btn-secondary">๋ชฉ๋ก</a>
</div>
</form>
</div>
</main>
<%-- [Contents] ######################################################### --%>
<jsp:include page="/layout/footer.jsp" />
<jsp:include page="/layout/script.jsp" />
</body>
</html>
HTML
๋ณต์ฌ
board.sql
DROP TABLE IF EXISTS board;
CREATE TABLE board (
no INT AUTO_INCREMENT PRIMARY KEY COMMENT 'PK',
id VARCHAR(64) NOT NULL UNIQUE COMMENT 'UK',
title VARCHAR(255) NOT NULL COMMENT '์ ๋ชฉ',
user_no INT NOT NULL COMMENT '์์ฑ์ PK',
content TEXT NOT NULL COMMENT '๋ด์ฉ',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '์์ฑ์ผ',
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '์์ ์ผ'
) COMMENT '๊ฒ์ํ';
-- ์ํ ๋ฐ์ดํฐ
TRUNCATE TABLE board;
INSERT INTO board(id, title, user_no, content)
VALUES
(UUID(), '์ ๋ชฉ001', 1, '๋ด์ฉ001'),
(UUID(), '์ ๋ชฉ002', 2, '๋ด์ฉ002'),
(UUID(), '์ ๋ชฉ003', 3, '๋ด์ฉ003'),
(UUID(), '์ ๋ชฉ004', 1, '๋ด์ฉ004'),
(UUID(), '์ ๋ชฉ005', 2, '๋ด์ฉ004'),
(UUID(), '์ ๋ชฉ003', 3, '๋ด์ฉ003')
;
SQL
๋ณต์ฌ
Board.java
package board.DTO;
import java.util.Date;
import com.alohaclass.jdbc.annotation.Column;
import com.alohaclass.jdbc.annotation.Pk;
import com.alohaclass.jdbc.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Table("board")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Board {
@Pk
private int no;
private String id;
private String title;
private int userNo;
private String content;
private Date createdAt;
private Date updatedAt;
@Column(exist = false)
private Users user;
}
Java
๋ณต์ฌ
BoardDAO.java
package board.DAO;
import com.alohaclass.jdbc.dao.BaseDAOImpl;
import board.DTO.Board;
public class BoardDAO extends BaseDAOImpl<Board> {
}
Java
๋ณต์ฌ
BoardService.java
package board.Service;
import java.util.List;
import board.DTO.Board;
public interface BoardService {
// ๊ฒ์๊ธ ๋ชฉ๋ก
List<Board> list();
// ๊ฒ์๊ธ ์กฐํ
Board select(int no);
Board selectById(String id);
}
Java
๋ณต์ฌ
BoardServiceImpl.java
package board.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import board.DAO.BoardDAO;
import board.DAO.UserDAO;
import board.DTO.Board;
import board.DTO.Users;
public class BoardServiceImpl implements BoardService {
private BoardDAO boardDAO = new BoardDAO();
private UserDAO userDAO = new UserDAO();
@Override
public List<Board> list() {
List<Board> list = null;
try {
list = boardDAO.list();
for (Board board : list) {
int userNo = board.getUserNo();
Users user = userDAO.select(userNo);
board.setUser(user);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
@Override
public Board select(int no) {
Board board = null;
try {
board = boardDAO.select(no);
int userNo = board.getUserNo();
Users user = userDAO.select(userNo);
board.setUser(user);
} catch (Exception e) {
e.printStackTrace();
}
return board;
}
@Override
public Board selectById(String id) {
Board board = null;
try {
Map<String, Object> map = new HashMap<>();
map.put("id", id);
board = boardDAO.selectBy(map);
int userNo = board.getUserNo();
Users user = userDAO.select(userNo);
board.setUser(user);
} catch (Exception e) {
e.printStackTrace();
}
return board;
}
}
Java
๋ณต์ฌ
BoardServlet.java
package board.servlet;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
import board.DTO.Board;
import board.DTO.Users;
import board.Service.BoardService;
import board.Service.BoardServiceImpl;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/board/*")
public class BoardServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private BoardService boardService = new BoardServiceImpl();
/**
* [GET]
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String path = request.getPathInfo();
String page = "";
// ๊ฒ์๊ธ ๋ชฉ๋ก
if( path.equals("/list") || path.equals("/list.jsp") ) {
List<Board> boardList = boardService.list();
request.setAttribute("boardList", boardList);
page = "/page/board/list.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(page);
dispatcher.forward(request, response);
}
// ๊ฒ์๊ธ ์กฐํ
if( path.equals("/read") || path.equals("/read.jsp") ) {
String id = request.getParameter("id");
Board board = boardService.selectById(id);
request.setAttribute("board", board);
page = "/page/board/read.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(page);
dispatcher.forward(request, response);
}
}
/**
* [POST]
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
Java
๋ณต์ฌ