본문으로 바로가기

05.JPA02②

category IT/SpringDay 2022. 5. 19. 22:35

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