[JPA] H2DB 설치 및 JPA와 DB설정, 동작확인

이준영·2022년 10월 7일
0

스프링 - JPA

목록 보기
3/11

H2 데이터베이스 설치하기

H2 데이터베이스는 개발이나 테스트 용도로쓰이는 가볍고 편리한 DB래.

두번째 H2 데이터베이스 설치인데 가이드 안보고는 못하겠었다..
다음에 강의에서 또 나오면 안들어도 될 정도로 확실하게 잡고 가야겠다.

H2DB ver 1.4.199 https://h2database.com/h2-2019-03-13.zip
H2DB ver 1.4.200 https://h2database.com/h2-2019-10-14.zip

  1. 다운 받아서 압축풀면 h2폴더가 하나 생긴다
  2. 터미널에서 h2/bin에 있는 h2.sh 파일이 있는데 이걸 실행시키면 DB서버 실행 완료.
  3. 실행 방법은 $ ./h2.sh
  4. 만약에 실행이 안되면 $ chmod 755 h2.sh를 입력한 후 $ ./h2.sh를 입력해보자!
  5. 실행이 완료되면 디비 서버가 켜지면 localhost:8082//~ 페이가 뜬다
  6. 첫 연결시 JDBC URL을 jdbc:h2:~/jpashop으로 놓고 연결해야 한다
  7. 제대로 연결되면 $ ls -arlth 를 통해 jpashop.mv.db 파일이 생성된 것을 확인할 수 있다!
  8. 이후 연결부터는 JDBC URL을 jdbc:h2:tcp://localhost/~/jpshop 으로 놓고 연결하면 된다.

JPA와 DB 설정, 동작확인

DB를 설치했으니 원래는
라이브러리 추가 / 경로 설정 의 단계를 거쳐야 되는데 프로젝트 생성 당시 H2DB 라이브러리를 이미 넣어줬으니 경로 설정만 하면 된다. 영한이 형은 application.yml을 주로 사용한다고 하니 application.properties를 삭제하고 같은 위치에 application.yml을 생성!

application.yml 파일 코드는 다음과 같다.

spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/jpashop
    username: sa
    password:
    driver-class-name: org.h2.Driver

  jpa:
    hibernate:
      ddl-auto: create
    propeties:
      hibernate:
  #     show_sql: true       System.out을 통해 찍음
        format_sql: true

logging:
  level:
    org.hibernate.SQL: debug    # log를 통해 찍음
    org.hibernate.type: trace

설정이 끝났으니 테스트를 해보자

  1. 회원 리포지토리 만들어서
@Repository
public class MemberRepository {
	@PersistenceContext
	EntityManager em;
public Long save(Member member) {
em.persist(member);
return member.getId();
}
public Member find(Long id) {
return em.find(Member.class, id);
}
}
  1. 테스트진행
@RunWith(SpringRunner.class)
@SpringBootTest
public class MemberRepositoryTest {
     
	@Autowired MemberRepository memberRepository;
    
	@Test
	@Transactional
	@Rollback(false)
	public void testMember() {
		Member member = new Member();
		member.setUsername("memberA");
		Long savedId = memberRepository.save(member);
		
        Member findMember = memberRepository.find(savedId);

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

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

이떄 영한이형이 편리한 기능을 쓴다
tdd를 입력하면 설정해놓은 코드가 자동으로 뜬다!!
나도할래!!!

Preference에서 검색어: template -> live templates 에서 add(+) 누르고

@Test
public void $NAME$ throws Exception{
    //given
    $end$
    //when
   
    //then   
}

코드 이렇게 추가해서 tdd라고 만들어줬다.

테스트 빌드할 때 오류가 났는데 설정에서 검색어: build -> Gradle -> build and run using & run tests using을 IntelliJ로 바꾸니 해결

Transaction은 spring 뭐시기 있는걸 쓰자


jar 파일로 서버 실행하기

터미널로 jpashop 프로젝트 폴더를 연다
$ ./gradlew clean build 하면 빌드된다.
빌드가 완료되면 jpashop/build/libs/~~~.jar 파일이 생성된다.
$ java -jar ~~SNAPSHOT.jar 하면 서버 실행

profile
화이팅!

0개의 댓글