#5-2 spring boot 게시판 만들기 - 게시글 등록

ChoEunji·2021년 6월 1일
1
post-thumbnail

😊 본 게시글은 김인우님의 스프링 부트 시작하기를 참고해 공부한 내용입니다.

Java -> java11
IDE -> eclipse 3.18
DataBase -> MariaDB


게시판에서 글쓰기 버튼을 누르면 게시글을 작성할 수 있는 화면이 나타나고, 저장을 누르면 DB에 게시글이 등록되는 게시글 등록 기능을 만들어보자!

우선, 게시글을 작성할 수 있는 화면과 저장을 누르면 DB에 게시글이 등록되는 기능 두가지를 만들어야 한다.

게시글 작성 화면

src/main/resources/templates에 boardWrite.html 생성

boardWrite.html

<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<head>
	<meta charset="UTF-8">
	<title>board</title>
	<link rel="stylesheet" th:href="@{/css/style.css}" 
		href="../../css/style.css"></link>
</head>
<body>
	<div class="container">
		<h2>게시판 등록</h2>
        	// 사용자가 입력한 내용들을 서버로 전달하기 위해 form 태그 이용. action에는 요청을 수행할 서버의 주소를 입력 -> 아직 만들지 않음.
		<form id="frm" name="frm" method="post" action="/board/insertBoard.do"
			<table class="board_detail">
				<tr>
					<td>제목</td>
					<td><input type="text" id="title" name="title"></td>
                    			// 입력된 내용들은 name을 키로 이용해 서버에 전송됨
				</tr>
				<tr>
					<td colspan="2">
						<textarea id="contents" name="contents"></textarea>
					</td>
				</tr>
			</table>
			<input type="submit" id="submit" value="저장" class="btn">
		</form>
	</div>
</body>
</html>

컨트롤러

두개의 메소드가 추가된다.
1. 게시글 작성 화면을 보여주는 메소드
2. 게시글을 등록하는 기능을 하는 메소드

BoardController.java

@RequestMapping("/board/openBoardWrite.do")		//게시글 작성 화면 호출
    public String openBoardWrite() throws Exception{
    	return "/boardWrite";
    }
    
    @RequestMapping("/board/insertBoard.do")		//작성된 게시글 등록 기능 메소드, html의 form 태그 action에서 입력한 주소
    public String insertBoard(@ModelAttribute BoardDto board) throws Exception{
    	boardService.insertBoard(board);
    	return "redirect:/board/openBoardList.do";	//게시글 리스트로 이동
    }

서비스

BoardService.java

void insertBoard(BoardDto board) throws Exception; // 게시글을 등록하는 기능에 대한 서비스 

BoardServiceImpl.java

@Override
	public void insertBoard(BoardDto board) throws Exception {
		// TODO Auto-generated method stub
		boardMapper.insertBoard(board);
	}

Mapper

BoardMapper.java

void insertBoard(BoardDto board) throws Exception;		//게시판 쓰기

SQL

sql-board.xml

<insert id="insertBoard" parameterType="com.example.demo.dto.BoardDto">
		<![CDATA[
			INSERT INTO t_board
			(
				title, contents, created_datetime
			)
			VALUES
			(
				#{title}, // html input 태그에서 name='title' 부분. 마이바티스에서는 #{변수명} 형식으로 전달된 데이터를 사용함.
				#{contents},
				NOW()
			)
		]]>
	</insert>

실행결과

게시글이 잘 등록된다!

데이터베이스에도 잘 등록됨

profile
백엔드 개발자 취준생 / 2020.12 ~ 1일 1커밋중

0개의 댓글