-
패스트캠퍼스 챌린지 4일차JAVA/Spring 2021. 11. 4. 13:09
1. H2 DB
RDB 중 하나로 설치하지 않아도 사용할 수 있는 데이터베이스 툴이다.
간단한 테스트 용도로 사용하기 좋으며 어플리케이션이 종료되면 관련된 모든 데이터가 소멸된다.아래는 H2DB를 활용하여 테이블을 생성하고 데이터를 삽입하는 방법이다.
우선 DB에 활용할 Entity를 정의해주도록 한다.
dmaker.entity.Developer
@Getter @Setter @Builder // @Builder가 들어가면 @NoArgsConstructor와 @AllArgsConstructor를 함께 넣어주어야 한다. @NoArgsConstructor @AllArgsConstructor @Entity @EntityListeners(AuditingEntityListener.class) public class Developer { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) protected Long id; @Enumerated(EnumType.STRING) private DeveloperLevel developerLevel; @Enumerated(EnumType.STRING) private DeveloperSkillType developerSkillType; private Integer experienceYears; private String memberId; private String name; private Integer age; @CreatedDate private LocalDateTime createdAt; @LastModifiedDate private LocalDateTime updatedAt; }
위의 예제에서 볼 수 있듯이 @Builder가 들어가면 @NoArgsConstructor와 @AllArgsConstructor를 함께 넣어주어야 한다.
DeveloperLevel과 DeveloperSkillType의 경우 개발자의 실력과 보유 기술에 미리 지정해둔 값들만 삽입할 수 있도록 @Enumerated 어노테이션을 달아준다.
id에는 @GeneratedValue를 달아 Auto Increment 되도록 설정한다.
createdAt과 updatedAt 필드에는 각각 @CreatedDate와 @LastModifiedDate 어노테이션을 달아 데이터가 생성되고 수정될 때 자동으로 시간이 입력될 수 있도록 한다.
다음으로 DeveloperLevel과 DeveloperSkillType에 사용할 문자열 값들을 서술해준다.
dmaker.type.DeveloperLevel
@Getter @AllArgsConstructor public enum DeveloperLevel { NEW("신입 개발자"), JUNIOR("주니어 개발자"), JUNGNIOR("중니어 개발자"), SENIOR("시니어 개발자") ; private final String description; }
dmaker.type.DeveleoperSkillType
@Getter @AllArgsConstructor public enum DeveloperSkillType { BACK_END("백엔드 개발자"), FRONT_END("프론트엔드 개발자"), FULL_STACK("풀스택 개발자") ; private final String description; }
다음에는 입력한 값들이 DB에 저장될 수 있도록 JpaRepository를 이용한 Repository를 만들어준다. 관련된 내용은 추후에 다룰 예정이다.
dmaker.repository.DeveloperRepository
@Repository public interface DeveloperRepository extends JpaRepository<Developer, Long> { }
로직을 정의할 Service를 생성한다.
dmaker.service.DMakerService
@Service @RequiredArgsConstructor public class DMakerService { private final DeveloperRepository developerRepository; @Transactional public void createDeveloper(){ // Builder를 통해 각각의 데이터들을 삽입해준다. Developer developer = Developer.builder() .developerLevel(DeveloperLevel.JUNIOR) .developerSkillType(DeveloperSkillType.FRONT_END) .experienceYears(2) .name("Harry") .age(31) .build(); // 작성된 developer 객체를 developerRepository를 통해 DB에 저장한다. developerRepository.save(developer); } }
생성한 Service를 Controller에서 실행시켜준다.
dmaker.controller.DMakerController
@GetMapping("/create-developer") public List<String> createDeveleoper() { // GET /create-developer HTTP/1.1 log.info("GET /create-developer HTTP/1.1"); dMakerService.createDeveloper(); return Collections.singletonList("Harry"); }
본 포스팅은 패스트 캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
https://bit.ly/3FVdhDa수강료 100% 환급 챌린지 | 패스트캠퍼스
딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!
fastcampus.co.kr
'JAVA > Spring' 카테고리의 다른 글
패스트캠퍼스 챌린지 8일차 (0) 2021.11.08 패스트캠퍼스 챌린지 7일차 (0) 2021.11.07 패스트캠퍼스 챌린지 6일차 (0) 2021.11.06 패스트캠퍼스 챌린지 5일차 (0) 2021.11.05 패스트캠퍼스 챌린지 3일차 (0) 2021.11.03