inblog logo
|
vosw1
    Spring

    블로그 만들기 2. H2 DB 연결하기

    Feb 05, 2024
    블로그 만들기 2. H2 DB 연결하기

    1. build Gradle의 의존성 확인하기

    dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-mustache' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'com.h2database:h2' runtimeOnly 'com.mysql:mysql-connector-j' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' }
    • jpa : Spring Data JPA를 사용하는 데 필요한 기본 의존성을 포함되어 있음
    JPA(Java Persistence API)를 사용하여 데이터베이스와의 상호 작용을 지원
    • mustache : Mustache 템플릿 엔진을 사용
    Mustache는 간단하면서도 강력한 템플릿 언어를 제공
    • web : 스프링 부트 웹 애플리케이션을 개발하는 데 필요한 기본 의존성
    Spring MVC와 내장된 톰캣 서버를 사용하여 웹 애플리케이션을 구성
    • lombok : 롬복 라이브러리의 컴파일 타임 의존성
    어노테이션을 통해 getter, setter, equals 등을 자동 생성
    • devtools : 스프링 부트 애플리케이션의 개발을 도우는 도구
    코드 변경 감지, 자동 재시작 및 다양한 개발 환경을 지원
    • h2 : 인메모리 데이터베이스 H2의 런타임 의존성
    개발 및 테스트 목적으로 사용, 휘발성이기 때문에 전원이 꺼지면 데이터가 날라감
    • mysql-connector-j : MySQL 데이터베이스에 연결하기 위한 런타임 의존성
    MySQL 데이터베이스와의 상호 작용을 지원
    • test : 스프링 부트 테스트를 위한 기본 의존성을 제공
    JUnit, Spring Test 등을 사용하여 애플리케이션을 테스트할 수 있음
     

    2. H2 DB

    • 자바로 작성된 관계형 데이터베이스 관리 시스템 / 서버 실행시 자동 설치
    • 자바 애플리케이션에 임베드(장착)하거나 클라이언트-서버 모드에서 구동할 수 있음
    • 인메모리 데이터 베이스 : 킬 때마다 똑같은 상태로 셋팅 가능
    • DB는 종료되면 데이터가 다 날아감 / 휘발성
    • 메모리에 데이터를 저장 / 설치가 필요없음
    • 방언 설정이 가능 : 무슨 데이터 모드(Mysql인지 다른 것인지)로 실행할 것인지 설정이 가능함
     

    3. JPA(Java Persistence API)

    • Java를 사용하여 DB와의 관계형 데이터를 영구적으로 저장하고 검색하기 위한 API
    • Java의 객체를 관계형 DB에 매핑하는 기술을 제공
    객체와 DB 간의 매핑 작업을 간소화
    • SQL 쿼리를 직접 작성하는 대신 Java 객체를 사용하여 DB와 상호 작용 가능
    • 다양한 인터페이스와 메서드를 제공
    • 내가 만든 오브젝트로 바로 받을 수 있음 // 굉장히 편함
    ex) 서버(자바) - - - - - - - 디비
    셀렉트 요청 : ResultSet 테이블 형태 데이터(rs)를 응답 받음
    커서를 내리면서 파싱 → 자바 오브젝에 넣음 // 이 과정이 항상 필요함
     

    4. dev.yml에 설정하기

    server: servlet: encoding: charset: utf-8 force: true session: timeout: 30m port: 8080 spring: mustache: servlet: expose-session-attributes: true expose-request-attributes: true datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:test;MODE=MySQL username: sa password: h2: console: enabled: true jpa: hibernate: ddl-auto: create show-sql: true properties: hibernate: format_sql: true
    💡
    조심해야 할 것 : 띄워 쓰기, 들여쓰기 위치!
     

    5. H2 DB 연결 확인하기

    localhost
    http://localhost:8080/h2-console/login.jsp?jsessionid=b319f759a7d65e57f62f2cecbe8386ac
    notion image
    notion image
     
    Share article

    vosw1

    RSS·Powered by Inblog