본문 바로가기
💻 뚝딱뚝딱/북북클럽

[개발일지#006] 조회용 샘플데이터 생성

by 뚜루리 2025. 1. 21.
728x90
320x100

[사용기술]

Java, Spring Boot, Spring JPA, MySQL

 

[만들려는 것]

책을 위한 SNS.

 

[오늘 하려는 것]

조회용 샘플 데이터를 생성

 


InitDb.java

나는 application.properties 설정을 아래와 같이 해놓고 있다. 개발 초기에는 계속 create(서버 올라갈 때 테이블 다 드랍하고 다시 create하는 방식) 을 사용할 거라서 조회용 데이터를 미리 만들어서 서버 올라갈 때 Insert되게끔 해놓음.

spring.jpa.hibernate.ddl-auto=create

 

package seulgi.bookbookclub;

import jakarta.annotation.PostConstruct;
import jakarta.persistence.EntityManager;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import seulgi.bookbookclub.domain.*;

@Component
@RequiredArgsConstructor
public class InitDb {

    private final InitService initService;

    @PostConstruct
    public void init() {
        initService.dbInit1();
    }
    @Component
    @Transactional
    @RequiredArgsConstructor
    static class InitService {

        private final EntityManager em;
        public void dbInit1() {

            //회원 2명 생성
            Member member1 = new Member("이름1", "1234", "닉네임1", "정보1");
            Member member2 = new Member("이름2", "3456", "닉네임2", "정보2");
            em.persist(member1);
            em.persist(member2);

            //책 2개 생성
            Book book1 = new Book("111111111111","책이름1", "저자1", "출판사1");
            Book book2 = new Book("222222222222","책이름2", "저자2", "출판사2");
            em.persist(book1);
            em.persist(book2);

            //이름1에 타임라인2개 생성
            Timeline timeline1 = new Timeline(member1, book1 ,"내용1");
            Timeline timeline2 = new Timeline(member1, book2, "내용2");
            em.persist(timeline1);
            em.persist(timeline2);

            //이름2가 이름1을 팔로잉
            Follow follow = new Follow(member2, member1);
            em.persist(follow);

            //이름2가 이름1의 타임라인을 조항요
            Likes likes = new Likes(member2, timeline1);
            em.persist(likes);
        }
    }
}
  • 아직 개발 중이기 때문에 'create' 모드로 작업할 예정이라서 조회용 샘플 데이터를 만들어 놓기로 함.

 

 

데이터 확인

SELECT * FROM MEMBER;

SELECT * FROM TIMELINE;

SELECT * FROM BOOK;

SELECT * FROM FOLLOW;

SELECT  * FROM LIKES;

 

728x90
320x100