[게시판]4. 글목록보기 -DTO

gov's avatar
Nov 18, 2024
[게시판]4. 글목록보기 -DTO
💡
Service 클래스는 비즈니스 로직을 수행, DTO는 해당 로직의 결과를 클라이언트에 전달할 형식으로 변환
package com.example.blog.Board; import lombok.Data; public class BoardResponse { // board DTO // board객체를 옮겨주기 @Data // get, set 포함 public static class DTO { private int id; private String title; public DTO(Board board) { // Board객체 통째로 받기 this.id = board.getId(); this.title = board.getTitle(); } } }
package com.example.blog.Board; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @RequiredArgsConstructor @Service public class BoardService { private final BoardRepository boardRepository; public List<BoardResponse.DTO> 게시글목록보기() { List<BoardResponse.DTO> dtos = new ArrayList<>(); List<Board> boardList = boardRepository.findAll(); for (Board board : boardList) { BoardResponse.DTO dto = new BoardResponse.DTO(board); dtos.add(dto); } return dtos; } }
package com.example.blog.Board; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import java.util.List; @RequiredArgsConstructor // hibernate 생성자를 만들어줌 @Controller public class BoardController { // final : 객체가 생성될 때 반드시 초기화. 이후 변경 불가능 // boardService 필드를 final로 선언 private final BoardService boardService; // 생성자 @GetMapping("/") public String list(Model model) { // DS(request 객체를 model 객체로 랩핑하여 전달) List<BoardResponse.DTO> boardList = boardService.게시글목록보기(); // 요청을 위임받고 다시 보냄 model.addAttribute("models", boardList); // 받아서 모델에 저장 return "list"; // 리턴 파일을 템플릿파일에서 찾음. // viewresolver를 가지고 있어서 앞뒤로 적용 - 문자열 그대로 요청 } }
package com.example.blog.Board; import jakarta.persistence.EntityManager; import jakarta.persistence.Query; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import java.util.List; // 데이터 저장, 조회 등 DB와 직접 연결되어 작업 처리 @RequiredArgsConstructor @Repository public class BoardRepository { // JPA는 EntityManager로 DB에 접근 (자바에서 DBConnection) private final EntityManager em; public List<Board> findAll() { Query q = em.createNativeQuery("select * from board_tb order by id desc", Board.class); return q.getResultList(); } }
Share article

goho