스프링부트 프로젝트의 application.yml을 설정해주었다

datasource의 url로는 db 연결되어있는 주소를 입력하고,

username과 password에는 해당 사용자의 이름, 비밀번호를 입력한다.

 

  • hibernate: ddl-auto : create => 서버 실행할마다 매번 DB를 초기화시킨다는 뜻. 한번 초기화가 이뤄지고 세팅이 완료되면 none으로 바꾸고 실행해주면 된다
  • show_sql: true로 설정하면 개발시에 콘솔에서 로그로 어떤 쿼리가 실행되는지 확인할 수 있어서 유용 (logging을 따로 설정했기에 주석 처리해준다.)
  • format_sql: 로그, 콘솔의 SQL을 좀 더 이쁘게 출력한다 만약 위 설정인 show_sql이 false라면 출력되는 쿼리문이 없으므로, 필요없는 설정이고, 디폴트 값은 false이다

모든 로그 출력은 가급적 로거를 통해 남겨야함

 

Member Entity를 생성한다!

 

MemberRepository도 생성해준다

그리고 ctrl+Shift+T를 눌러서 Test 파일 생성해준다!

@Test는 JUnit4를 사용하면 org.junit.Test를 사용해야함

 

**팁**

tdd를 입력하고 alter+Enter를 누르면 내가 custom한 템플릿을 불러올 수 있다.

설정 > Live templates 에서 custom에 tdd를 추가하면 Template text를 자유롭게 설정할 수 있음!!

 

Ctrl + Alt + V => Extract로 변수 뽑아올 수 있음

 

Test 파일도 설정해주고, application을 실행해주면

 

에러가 난다.

에러 내용을 보면 Transaction에 관한 내용인데,

Entity와 repository에 관한 데이터 전달은 Transaction을 통해 진행되어야 한다.

 

@Transactional annotation 추가해준다!

 

application 실행해주고, 전에 접속했던 h2에 들어가준다 

Member table 생성 확인!

 

Test 파일에 @Transactional 이 들어가있으면 data를 rollback해버린다

@Rollback(false)를 추가해주고 다시 확인해보면

 

table에 data가 추가된 걸 확인할 수 있음! (rollback 안하고 commit)

 

Assertions.assertThat(findMember).isEqualTo(member);

를 test파일에 추가하면, 조회한 멤버와 저장한 멤버가 같을까? => Yes!

 

김영한 실전 스프링부트와 JPA 활용1 수업 듣고 직접 프로젝트 생성하며 작성

+ Recent posts