게시판 무작정 따라하기 - 게시글 리스트

기록하는 용도·2022년 5월 18일
0

유튜브 '한코딩'님 채널을 그대로 따라하며 기록했습니다

개발툴

Java
Spring boot
Intellij community version
MariaDB
Thymeleaf
+JPA

코드를 작성할 Intellij community version
데이터를 저장할 MariaDB
페이지를 담당할 뷰템플릿 - Thymeleaf
DB에 접근할 JPA

강의순서

1) 개발 환경 세팅

  • Intellij Community 다운로드
  • MariaDB 다운로드
  • MySQL Workbench 다운로드

2) 프로젝트 생성

  • Intellij Community에서 Spring boot 프로젝트 생성
  • MariaDB Database(스키마) 생성

3) 게시물 작성

  • MariaDB Database에 'Board'테이블 생성
  • 게시물 작성 폼 생성
  • 게시물 작성 처리

4) 게시물 리스팅

  • 게시물 리스트 페이지 생성
  • 게시물 리스트 페이지에 저장된 게시글 출력

5) 게시물 삭제

  • 게시물 삭제 버튼 생성
  • 게시물 삭제 처리

6) 게시물 수정

  • 게시물 수정 페이지 생성
  • 게시물 수정 처리

7) 게시물 리스트 페이징

  • 게시물 페이징 처리
  • 게시물 리스트 페이지에서 페이징 처리

오라클이 있는데 MariaDB를 사용하는 이유
원래 MySQL이 무료였는데 오라클이 인수하면서 유료로 바뀌었습니다. 그 때 MySQL 개발자들이 만든 게 MariaDB입니다! 그래서 MySQL이랑 거의 똑같이 동작하고 무료라서 많이 사용합니다. 데이터베이스 오라클로 바꾸면 자동 증가 전략을 시퀀스로 설정해야 되는데 이 부분 외에는 JPA가 자동으로 잡아주기 때문에 따로 변경할 필요 없어요! 시퀀스 설정만 잡아주시면 될 것 같습니다!

어떤 글이 작성되어있는지 페이지가 필요하기때문에 리스트 페이지를 만든다.

https://developer-rooney.tistory.com/153?category=496529
링크를 통해서 테스트 프로시저를 복사하고 워크벤처에 붙여넣는다.

게시글의 리스트를 보기위해 어느정도 글이 있어야하는데, 테스트 게시물이 많지않으면 개발함에 불편하기때문에 사용한다.

프로시저가 생성됐다.

call testDataInsert;

를 작성하고 ctrl+enter를 통해서 실행시키고, board테이블을 들어가서
왼편에 표모양을 누르면 데이터가 120개 정도 들어간 것을 확인할 수 있다.

@GetMapping("/board/list")
    public String boardList(){

        return "boardlist";
    }

이제 컨트롤러에서 getmapping을 하나 만들어주고, 이때 boardlist라는 화면이 없기때문에 만들어준다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>게시글 리스트 페이지</title>
</head>

<style>
    .layout{
        width:500px;
        margin:0 auto;
        margin-top: 40px;
    }
</style>

<body>
    <div class="layout">
        <table>
            <thead>
                <tr>
                    <th>글번호

                    </th>
                    <th>제목

                    <th>
                </tr>
            </thead>

            <tbody>
                <tr>
                    <td>
                        1
                    </td>
                    <td>
                        제목입니다.
                   </td>
                </tr>
            </tbody>
        </table>
    </div>
</body>
</html>

화면을 만들고 서버를 실행시키면

를 확인할 수 있다.

이제 글을 불러올 메서드가 필요하다.
서비스에서 처리해준다.

데이터를 담아서 우리가 보는 페이지로 보내줘야하기때문에 model을 쓴다.

@GetMapping("/board/list")
    public String boardList(Model model){
        model.addAttribute("list",boardService.boardList());
        return "boardlist";
    }

boardService.boardList()를 실행하면 리스트가 반환이 되는데 그 반환된 리스트를 "list" 이 리스트라는 이름으로 받아서 넘기겠다는 이야기이다.

이때 html파일에서 받아서 넘기는 부분이있는데 이때 쓰는것이 타임리프이다.

<html lang="en" xmlns:th="http://www.thymeleaf.org">


이렇게 수정할 수 있다.
each 반복문은 list에서 board가 없어질때까지(121번)실행된다.

0개의 댓글