[Springboot] 10 더미 데이터 넣기

우리는 왜 더미데이터를 넣는가
김호정's avatar
Aug 19, 2024
[Springboot] 10 더미 데이터 넣기
 
 
notion image
디렉토리 db 생성
 
기본적으로 생성하는것은
스키마sql, dataSql 2개를 만든다.
스키마는 테이블 생성코드(ddl = create, alter, drop 등)을,
dataSql은 더미데이터를 insert 한다.
 
엔티티로 자동으로 create 하니까 우리는 스키마는 안만들어도 OK
 
만약 우리가 MybATIS를 쓴다? 그럼 스키마 만들어줘야댐 (구분하는게 좋음)
 
아 근데
Create 가 먼저 일어나고 나중에 insert 가 일어나도록 해줘야된다.
 
일단 그건 나중에 하고 .sql 파일을 만들자
 
 
notion image
 
 
notion image
 
notion image
 
스프링이 동작할 때 data.sql 이 실행됨
 
근데 이렇게 하면 터짐
 
notion image
 
에러가 나면 일단 clear all
notion image
 
그리고 다시 실행해서 오류의 로그만 확인하기
 
notion image
stack trace
 
트레이스
 
notion image
 
에러를 자세히 보면
notion image
notion image
 
classpath 를 앞에 적어준다.
classpath를 적어야지 resource 폴더에 도달한다.
 
notion image
 
다시 실행하면 에러가 바뀐다.
 
notion image
notion image
 
위처럼 에러가 뜨는 이유는
아까 위에서 설명했듯이, board_tb 가 만들어지지 않았는데 data.sql을 실행해서
insert를 시도했기 때문이다.
 
이렇게 터지면 실행타이밍 바꿔줘야 한다. Create를 먼저 하도록!
 
 
notion image
 
spring.jpa.defer-datasource-initialization=true 설정을 추가해줘야지 엔티티 create 를 먼저 실행하게 된다.
 
notion image
 
어 왜 안돼?
 
에러발생
 
notion image
notion image
 
원인 : “제목” ⇒ 쌍따옴표를 넣어서 그런 것이다.
 
notion image
 
⇒ “ ” 쌍따옴표말고 ‘’홑따옴표를 적어야 한다…!!!!
 
더미데이터를 만드는 이유는 ?
 
  1. 동일한 환경을 설정해야지 같은 환경에서 실행하니 이야기를 하면 서로 이해하기 쉽다.
  1. 회원가입 먼저 안만들고 로그인부터 독립적으로 프로그램을 만들 수 있다.
→ 회원 더미 데이터를 넣어두면, 바로 로그인을 만들 수 있다.
→ 모든 프로그램은 독립적으로 만들 수 있어야 한다. 그렇게 안하면 협업을 할 수 없다.
→ 바퀴가 없어서 자동차 뼈대를 만들 수 있어야 한다.
 
추가)
notion image
 
url 에 jdbc:h2:mem:test 를 쓰는 이유
 
Share article

keepgoing