일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 완전탐색
- 파이썬
- deque
- 합 구하기
- C#강의
- 백준
- 브루투포스
- 연관관계
- 소수판별
- spring
- 우선순위큐
- python3
- appendleft
- Java
- 소수찾기
- popleft
- LCM
- 인프런
- mvc
- c#
- 누적합
- pypy3
- Python
- JPA
- BFS
- 프로그래머스
- 1일1솔
- DP
- 그리디 알고리즘
- unity
Archives
- Today
- Total
jae_coding
[Spring Project] h2 Database 환경설정 본문
반응형
목차
- H2 Databae 다운로드 및 설치
- DB 파일 생성하기
- DB 연결 환경설정
- DB 확인 및 테스트
1. H2 Database 다운로드 및 설치
여기서 본인의 OS에 맞는 버전을 다운로드를 받는다.
2. DB파일 생성하기
terminal에서 h2다운로드 경로로 들어가서 h2.sh을 실행시켜준다.
초기 jpashop이라는 이름으로 db파일을 생성시켜준다. (지정된 경로에 jpashop.mv.db파일 생성완료)
그 뒤에부터 tcp소켓 통신을 이용하여 database에 접근하여 주면 끝!
접속화면
이런식으로 H2 Database환경설정은 끝입니다 ! 감사합니다.
3. DB 연결 환경설정
application.properties 파일을 지우고 본 프로젝트는 application.yml 파일을 사용하였습니다.
application.yml
spring: #띄어쓰기 없음
datasource: #띄어쓰기 2칸
url: jdbc:h2:tcp://localhost/~/jpashop #띄어쓰기 4칸
username: sa
password:
driver-class-name: org.h2.Driver
jpa: #띄어쓰기 2칸
hibernate: #띄어쓰기 4칸
ddl-auto: create #띄어쓰기 6칸
properties: #띄어쓰기 4칸
hibernate: #띄어쓰기 6칸
show_sql: true #띄어쓰기 8칸
format_sql: true #띄어쓰기 8칸
logging.level: #띄어쓰기 없음
org.hibernate.SQL: debug #띄어쓰기 2칸
# org.hibernate.type: trace #띄어쓰기 2칸
4. DB 확인 및 테스트
domain(Member)
package jpabook.jpashop;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
@Getter
@Setter
public class Member {
@Id
@GeneratedValue
private Long id;
private String username;
}
repository(MemberRepository)
package jpabook.jpashop;
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Repository
public class MemberRepository {
@PersistenceContext
private EntityManager em;
// command + shift + t를 이용해서 테스트 코드 작성
//저장하는 코드
public Long save(Member member){
em.persist(member);
return member.getId();
}
//member하나 조회
public Member find(Long id){
return em.find(Member.class, id);
}
}
repositoryTest(MemberRepositoryTest)
package jpabook.jpashop;
import org.assertj.core.api.Assertions;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
import static org.junit.Assert.*;
@SpringBootTest
@RunWith(SpringRunner.class)
public class MemberRepositoryTest {
@Autowired MemberRepository memberRepository;
@Test
// Test가 끝난 후 db를 rollback한다.
@Transactional
//@Rollback(value = false)
public void testMember() throws Exception {
// given
Member member = new Member();
member.setUsername("memberA");
//when
Long saveId = memberRepository.save(member);
Member findMember = memberRepository.find(saveId);
//then
Assertions.assertThat(findMember.getId()).isEqualTo(member.getId());
Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername());
}
}
테스트 결과
테스트 결과를 확인하게되면 Hibernate를 통하여 db에 테이블이 생성된 것을 확인할 수 있다.
테이블에는 Transactional을 이용하기때문에 변경이 되지 않은 것을 확인할 수 있다.
반응형
'Spring, java > Spring_Project' 카테고리의 다른 글
[Spring Project] 애플리케이션 아키텍쳐 (0) | 2022.08.22 |
---|---|
[Spring Project] 엔티티 설계 주의사항 (0) | 2022.08.22 |
[Spring Project] 엔티티 클래스 개발 (3) | 2022.08.21 |
[Spring Project] View 환경설정 (0) | 2022.08.20 |
[Spring Project] 프로젝트 환경설정 (0) | 2022.08.20 |
Comments