1. 전체회원 조회
1) 흐름
- em.createQuery는 메소드에서는 실행과 동시에 sql 수행
@Override
public List<Member> findAll() {
System.out.println("findAll 시작");
List<Member> memberList = em.createQuery("select m from Member m", Member.class).getResultList();
System.out.println("findAll 끝");
return memberList;
}
2) html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>JPA02 회원 조회</h1>
<div class="nav">
<form action="/members/search" method="post">
회원검색이름 : <input type="text" name="name" placeholder="회원검색 이름을 입력하세요">
<button type="submit">검색</button>
</form>
</div>
<div class="container">
<div>
<table border="1">
<thead>
<tr>
<th>No</th>
<th>회원이름</th>
<th>팀 이름</th>
</tr>
</thead>
<tbody>
<tr th:each="member : ${members}">
<td th:text="${member.id}"></td>
<td><a th:href="@{/memberModifyForm(id=${member.id})}" th:text="${member.name}"></a></td>
<td th:text="${member.team.name}"></td>
</tr>
</tbody>
</table>
</div>
</div><!-- container -->
<a href="/members/new">Member 신규 생성</a><p>
</body>
</html>
2. 회원 수정 양식
1)"@{/memberModifyForm(id=${member.id})}"
@GetMapping(value = "/memberModifyForm")
public String memberModify(Long id, Model model) {
System.out.println("회원 수정 컨트롤러 실행 ");
Member member = memberService.findByMember(id);
model.addAttribute("member", member);
System.out.println("회원 수정 컨트롤러 끝");
return "members/memberModify";
}
2) memberService.findByMember(id);
public Member findByMember(Long memberId) {
System.out.println("회원 수정 서비스 시작");
Member member1 = memberRepository.findByMember(memberId);
System.out.println("회원 수정 서비스 끝");
return member1;
}
3)memberRepository.findByMember(memberId);
@Override
public Member findByMember(Long memberId) {
Member member = em.find(Member.class, memberId);
return member;
}
3. 회원 수정
@GetMapping(value = "/members/memberUpdate")
public String memberUpdate(Member member, Model model) {
System.out.println("회원 수정 완료 컨트롤러 시작");
memberService.memberUpdate(member);
System.out.println("회원 수정 완료 컨트롤러 끝");
return "redirect:/members";
}
//수정
public void memberUpdate(Member member) {
System.out.println("회원 수정 완료 서비스 시작");
memberRepository.updateByMember(member);
System.out.println("회원 수정 완료 서비스 끝");
}
@Override
public int updateByMember(Member member) {
int result = 0;
System.out.println("updateByMember 시작");
//아이디 있는 지 확인
Member updateMember = em.find(Member.class, member.getId());
if(updateMember != null) {
System.out.println("updateMember 낫 널");
System.out.println("member.getId() : " + member.getId());
//Team Exist -> update
Team team = em.find(Team.class, member.getTeamid());
if(team != null) {
System.out.println("team 낫 널");
System.out.println("team update");
team.setName(member.getTeamname());
em.persist(team);
}
//회원 업데이트
System.out.println("member update");
updateMember.setTeam(team);
updateMember.setName(member.getName());
em.persist(updateMember);
result = 1;
} else {
result = 0;
System.out.println("JpaMemberRepository updateByMember No Exist..");
}
System.out.println("updateByMember 끝");
return result;
}
'IT > SpringDay' 카테고리의 다른 글
06.JpaApi② (0) | 2022.05.24 |
---|---|
06.JpaApi① (0) | 2022.05.22 |
05.JPA02① (0) | 2022.05.19 |
Lombok설치 (0) | 2022.05.19 |
05.JPA③-Member List 조회 (0) | 2022.05.19 |