Programming/JPA
JPA로 CRUD 구현하기_(4)비즈니스 로직 수행
Deveun
2021. 8. 20. 23:05
** 이전게시글 참고:
2021.08.20 - [Programming/JPA] - JPA로 CRUD 구현하기_(3)CRUD 구현
1. Service 구현
DB와 통신하며 데이터를 주고받는 CRUD 기능 구현이 끝났다.
이제 기능을 비즈니스 로직을 수행하는 MemberService 클래스를 구현해보자.
[service/MemberService.java]
package service;
import repository.MemberRepository;
import vo.Member;
public class MemberService {
private MemberRepository memberRepo;
public MemberService(MemberRepository memberRepo) {
this.memberRepo = memberRepo;
}
// 멤버 생성
public void registerMember(String id, String username, Integer age) {
Member newMember = new Member(id, username, age);
memberRepo.save(newMember);
System.out.println("Member Created");
}
// 멤버 조회
public void findMember(String id) {
Member member = memberRepo.findById(id);
System.out.println("findMember=" + member.getUsername() + ", age= " + member.getAge());
}
// 멤버 수정
public void editMember(String id, String username, Integer age) {
memberRepo.update(id, username, age);
System.out.println("Member Changed");
}
// 멤버 삭제
public void deleteMember(String id) {
memberRepo.delete(id);
System.out.println("Member Deleted");
}
}
2. Main 구현
이제 구현된 기능을 main메소드에서 수행해보자.
[JpaMain.java]
import infra.JpaMemberRepository;
import repository.MemberRepository;
import service.MemberService;
public class JpaMain {
public static void main(String[] args) {
// Repository 구현 객체를 Service에 주입하여 사용
MemberRepository jpaMemberRepo = new JpaMemberRepository();
MemberService service = new MemberService(jpaMemberRepo);
// CRUD application start
service.registerMember("member1", "deveun", 20);
service.findMember("member1");
service.editMember("member1", "jpa", 30);
service.deleteMember("member1");
}
}
/*
실행 결과
Member Created
findMember=deveun, age= 20
Member Changed
Member Deleted
*/
생성 / 수정 / 삭제기능을 각각 실행해보고 H2 Database Member테이블 값을 비교해보면 다음과 같이 잘 반영되는 것을 볼 수 있다.
여기까지 JPA로 CRUD 기능을 구현해봤다.
테스트 코드가 없어서 각각의 기능을 테스트 해보는데 불편함이 있는데, 다음 게시글에서 Junit 단위테스트 코드를 작성해보자.
[참고서적] 자바 ORM 표준 JPA 프로그래밍, 김영한 저자
[참고서적] DDD START! 도메인 주도설계 구현과 핵심 개념 익히기, 최범균 저자
[참고] https://www.javaguides.net/2018/12/jpa-crud-example.html