Spring CRUD 게시판 만들어보기 1

텐저린티·2023년 6월 17일
0

데브코스

목록 보기
2/41

Spring CRUD 게시판 만들어보기

🎯 요구사항

  • 프로젝트 생성

    • spring initializer로 Spring Boot 프로젝트 생성

    • MariaDB 스키마 생성

    • application.property 파일 설정

      server.port=포트번호
      
      spring.datasource.driver-class-name=org.사용한DB.jdbc.Driver
      spring.datasource.username=연결이름
      spring.datasource.password=비밀번호
      spring.datasource.url=jdbc:사용한DB://localhost:연결포트/스키마이름
  • 게시물 작성

    • MariaDB 에 Board 테이블 생성

    • 게시물 작성 폼 생성

      @Controller
      public class BoardController {
      
      		// localhost:8090/board/write
          @GetMapping("/board/write") 
          public String boardWriteForm() {
              return "boardwrite";
          }
      
      }
    • 게시물 작성 처리

      <form action="/board/writepro" method="post">
        <input name="title" type="text">
        <textarea name="content"></textarea>
        <button type="submit">작성</button>
      </form>

      @PostMapping("/board/writepro")
      public String boardWritePro(Board board) {
          boardService.write(board);
          return "";
      }
      @Entity
      @Data
      public class Board {
          @Id
          @GeneratedValue(strategy = GenerationType.IDENTITY)
          private Integer id;
          private String title;
          private String content;
      }
      @Repository
      public interface BoardRepository extends JpaRepository<Board, Integer> {
      }
      @Service
      public class BoardService {
      
          @Autowired
          private BoardRepository boardRepository;
      
          public void write(Board board) {
              boardRepository.save(board);
          }
      }
  • 게시물 리스팅
    • 게시물 리스트 페이지 생성

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

      <table>
          <thead>
            <tr>
              <th>글번호</th>
              <th>제목</th>
            </tr>
          </thead>
          <tbody>
            <tr th:each="board: ${list}">
              <td th:text="${board.id}"></td>
              <td th:text="${board.title}"></td>
            </tr>
          </tbody>
      </table>
      @GetMapping("/board/list")
      public String boardList(Model model) {
          model.addAttribute("list", boardService.boardList());
          return "boardlist";
      }
      public List<Board> boardList() {
          return boardRepository.findAll();
      }
  • 게시글 상세페이지
  • 게시물 수정
    • 게시물 수정 페이지 생성

    • 게시물 수정 처리

      https://github.com/SY97P/SpringCrud/commit/5acb8b814819663469dd57596799295076249e1c

    • 쿼리 스트링 방식 :

      <a th:href="@{/board/view(id=${board.id}}"></a>
      @GetMapping("/board/view")
      public String boardView(Model model, Integer id) {
      	model.addAttribute("board", boardService.boardView(id));
      	return "boardview";
      }
    • 패스 변수 방식 :

      <a th:href="@{/board/view/{id}(id=${board.id}}"></a>
      @GetMapping("/board/modify/{id}")
      public String boardModify(@PathVariable("id") Integer id,
      	Model model) {
      	model.addAttribute("board",	boardService.boardModify(id));
      	return "boardmodify";
      }
profile
개발하고 말테야

0개의 댓글

관련 채용 정보