이전 게시글https://changha-dev.tistory.com/149
에 이어서
이번 시간에는 회원 정보를 조회 및 삭제 할 수 있는 기능을 간단히 구현해보겠습니다.
조회 할 때 이전 리스트 구현과 약간 다른점은
리스트에서는 memberDTO 전체를 가져와야 되므로 findAll메서드를 사용했지만
이번에는 findById 메서드를 이용하면 됩니다.
조회
@GetMapping("/member/{id}")
public String findById(@PathVariable Long id, Model model) {
MemberDTO memberDTO = memberService.findById(id);
// login 처럼 return 값에 따라 분류 할 수 있음
model.addAttribute("member", memberDTO);
return "detail";
}
//MemberController.class
memberService쪽으로 가서
public MemberDTO findById(Long id) {
// 하나 조회할때 optional로 감싸줌
Optional<MemberEntity> optionalMemberEntity = memberRepository.findById(id);
if (optionalMemberEntity.isPresent()){
return MemberDTO.toMemberDTO(optionalMemberEntity.get()); // optional을 벗겨내서 entity -> dto 변환
}else {
return null;
}
}
memberRepository에서 id를 찾아 올 수 있도록 구현 하겠습니다.
이전에 한번 설명 한 것과 마찬가지로 DTO로 Controller에 보내기 위해
optional 를 get으로 벗겨내로 toMemberDTO메서드로 Entity -> DTO로 변환해줍니다.
삭제
@GetMapping("/member/delete/{id}") // /member/{id}로 할 수 있도록 공부
public String deleteById(@PathVariable Long id){
memberService.deleteByid(id);
return "redirect:/member/"; // list 로 쓰면 껍데기만 보여짐
}
//MemberController.class
주의 해야 할 점이 return 을 list페이지로 단순히 보내버리면
가져온 정보 없이 껍대기만 출력되므로
redirect:/member/ 를 이용합니다.
public void deleteByid(Long id) {
memberRepository.deleteById(id);
}
//MemberService.class
list.html 을 수정 해주겠습니다.
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>list.html</h2>
<table>
<tr>
<th>id</th>
<th>memberEmail</th>
<th>memberPassword</th>
<th>memberName</th>
<th>상세조회</th>
<th>삭제</th>
</tr>
<tr th:each="member: ${memberList}">
<td th:text="${member.id}"></td>
<td th:text="${member.memberEmail}"></td>
<td th:text="${member.memberPassword}"></td>
<td th:text="${member.memberName}"></td>
<td>
<!-- query string /member?id=1
rest api /member/1 -->
<a th:href="@{|/member/${member.id}|}">조회</a>
</td>
<td>
<a th:href="@{|/member/delete/${member.id}|}">삭제</a>
</td>
</tr>
</table>
</body>
</html>
조회 페이지 detail.html을 만들겠습니다.
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>detail</title>
</head>
<body>
<table>
<tr>
<th>id</th>
<th>email</th>
<th>password</th>
<th>name</th>
</tr>
<tr>
<td th:text="${member.id}"></td>
<td th:text="${member.memberEmail}"></td>
<td th:text="${member.memberPassword}"></td>
<td th:text="${member.memberName}"></td>
</tr>
</table>
</body>
</html>
이상으로 회원 정보 조회 및 삭제를 간단하게 구현 해보았습니다.
'개발' 카테고리의 다른 글
[Spring Boot] Security + jwt로 인증, 인가 구현하기 (1) | 2023.07.06 |
---|---|
session, cookie, jwt 관계 및 정리 (1) | 2023.07.01 |
[Spring Boot] 스프링 부트 회원 목록 출력하기 (0) | 2023.02.11 |
[Spring Boot] 스프링 부트 로그인 구현 (0) | 2023.02.11 |
[Spring Boot] MySQL DB와 연동하기 (0) | 2023.02.10 |