BACK-END/Springboot 9

[BaseBall GO 리뷰] 후기 게시글 검색

게시글 목록 조회 페이지는 PageRequesetDTO에서 page, size 값만 처리해서 게시글 페이지를 출력시킨다. 이 때, PageRequestDTO 에서 type과 keyword를 추가하면 검색 조건에 따른 게시글을 조회하여 출력시킬 수 있다. 서버 측에서 검색 처리를 위해 DTO에 값을 추가한다. - Controller는 그대로, PageRequestDTO에만 type, keyword를 추가한다. // Controller @GetMapping(value = {"", "/"}) public String list(PageRequestDTO pageRequestDTO, Model model) { model.addAttribute("result", landersService.getList(pageRe..

BACK-END/Springboot 2023.01.30

[BaseBall GO 리뷰] 후기 게시글 등록

※ Thymeleaf 템플릿 엔진(Template Engine) 중 하나. (템플릿 엔진: HTML과 데이터를 결합한 결과물을 만들어주는 도구) JSP와 같이 서버에서 컨트롤러가 전달하는 데이터를 이용하여 클라이언트에게 응답할 브라우저 화면을 동적으로 구성한다. => Spring Boot에서 JSP를 사용하려면 호환 및 환경설정에 어려움을 겪을 수 있기 때문에, Dependency 추가만으로 간편하게 이용할 수 있는 Thymeleaf의 사용을 권장한다. 후기 게시글 등록 LandersStadium 클래스를 기준으로 StadiumDTO를 작성한다. - StadiumDTO 클래스 내부에 경기장 이미지도 포함되어야 하므로 StadiumImageDTO 클래스도 작성해야 한다. - 이 때, StaadiumImag..

BACK-END/Springboot 2023.01.30

[BaseBall GO 리뷰] 후기 게시글 목록 및 후기 게시글 조회

게시글 목록 조회 JPQL의 결과로 나오는 Object[]를 DTO로 변환하여 게시글 목록을 출력할 수 있다. - Objcet[]의 내용을 파라미터로 전달받아서 StadiumDTO를 구성한다. => LandersService의 entityToDTO() 메소드를 이용하여 처리할 수 있다. - entityToDTO의 파라미터로 Member를 처리할 수 있다. 하지만 여기에서는 entity에 Member 정보를 담아서 한 번에 처리하도록 했다. ※ 추후에 변경하는 것이 좋을 것 같다. > 불필요한 데이터의 중복 default StadiumDTO entityToDTO(LandersStadium entity) { StadiumDTO stadiumDTO = StadiumDTO.builder() .sno(entity..

BACK-END/Springboot 2023.01.30

게시글 삭제하기

화면 조회 페이지에서 진행을 시작한다. 1. read(html) 삭제 $("#btn-delete").on("click", function (e) { if (!confirm("삭제하시겠습니까?")) { return false; } var targetFile = $(".readImg").data("file");// targerFile: 실제 파일 이름 var targetLi = $(".readImg").closest("li");// targetLi : 파일 List }) 화면 단에서 [삭제]를 클릭했을 때 삭제를 위한 프로세스가 진행될 수 있도록 작성한다. 2. Controller @PostMapping("/delete") public String delete(Long sno, RedirectAttribut..

BACK-END/Springboot 2022.10.25

게시글 수정하기

게시글의 정보를 GET 방식으로 불러와 수정 화면에 출력한 후 작업을 진행한다. 1. 게시글 수정 페이지 진입 1) Controller @GetMapping({ "/modify"}) public String modify(long sno, @ModelAttribute("requestDTO") PageRequestDTO requestDTO, Model model, @AuthenticationPrincipal PrincipalDetail principalDetail, RedirectAttributes redirectAttributes) { Long principalMno = principalDetail.getMno(); StadiumDTO stadiumDTO = landersService.getModify(s..

BACK-END/Springboot 2022.10.25

게시글 검색하기

1. 서버측 검색 처리 - DTO 추가 검색 조건으로 사용될 type과 keyword를 추가한다. @Builder @AllArgsConstructor @Data public class PageRequestDTO { private int page; private int size; private String type; private String keyword; public PageRequestDTO () { this.page = 1; this.size = 10; } public Pageable getPageable(Sort sort){ return PageRequest.of(page -1, size, sort); } } 2. 서비스 계층의 검색 구현 동적으로 검색 조건을 처리될 수 있도록 ServiceImp..

BACK-END/Springboot 2022.10.20

게시글 조회하기

※ 게시글의 번호를 이용하여 게시글을 조회할 수 있다. 1. Controller @GetMapping({"/read"}) public void read(long sno, @ModelAttribute("requestDTO") PageRequestDTO requestDTO, Model model, @AuthenticationPrincipal PrincipalDetail principalDetail) { Long principalMno = principalDetail.getMno(); StadiumDTO stadiumDTO = landersService.getStadium(sno, principalDetail); model.addAttribute("dto", stadiumDTO); } Get 방식으로 URL을..

BACK-END/Springboot 2022.09.26

[Springboot] JPA

[ORM (Object Relational Mapping)] - JPA를 통해 DB를 모델링하는 것을 말한다. - (함수를 제공하여) 반복 작업을 줄여준다. > JPA의 인터페이스를 통해 DB Table이 자동 생성될 수 있다. * 모델링: 테이블로 설계된 데이터를 실제로 구현한 것 class Team { int id; String name; String year; } * TRM - DB TABLE을 생성한 후 DB 모델링을 진행한다. [영속성 Context] - 데이터를 영구적으로 저장하는 속성 * Context: 대상에 대한 모든 것. 모든 정보를 의미한다. [DB와 OOP의 불일치성을 해결] 위와 같은 DB의 각 컬럼은 모두 기본 자료형으로 이루어져있다. (Object를 가질 수 없다.) 따라서 두..

BACK-END/Springboot 2021.12.14