[JPA] JPA를 이용한 데이터베이스 연동 - 설정

Coastby·2022년 11월 7일
1

Daengnyang 프로젝트

목록 보기
3/12

데이터베이스 연동


JPA를 이용하여 데이터베이스를 사용하기 위해서는 스프링 부트 어플리케이션과 연동해야 한다.

Spring Data JPA 의존성을 추가한 후에는 별도의 설정이 필요하다. 연동할 데이터 베이스의 정보를 application.properties에 작성해야 한다. 이 설정 없이는 스프링 부트 어플리케이션이 실행되지 않는다.

📄 application.yml

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/likelion-db
    username: root
    password: 12345

  jpa:
    show-sql: true    
    database-platform: org.hibernate.dialect.MySQL8Dialect 
    database : mysql
    hibernate.ddl-auto : update
  • spring.datasource : 데이터베이스를 연동하는 데 사용하는 값을 설정

    설정 내용설명
    driver-class-name연동하려는 데이터베이스의 드라이버를 정의
    urlDB의 경로와 데이터베이스명을 입력한다.
    username, password데이터베이스를 설치할 때 설정한 계정 정보 기입 (패스워드는 암호화 진행)
  • jpa : 하이버네이트를 사용할 때 활성화할 수 있는 선택사항

    설정 내용설명
    show-sql로그에 하이버네이트가 생성한 쿼리문을 출력하는 옵션. 아무 설정이 없으면 저장에 용이한 형태로 출력되기 때문에 사람이 보기에는 불편하게 한 줄로 출력된다.
    ✅ hibernate.ddl-auto⭐️⭐️⭐️⭐️ 운영 환경에서는 create, create-drop을 사용하지 않는다. 운영 환경에서는 대체로 validate나 none을 사용한다.
    - create : 어플리케이션이 가동되고 SessionFactory가 실행될 때 기존 테이블을 지우고 새로 생성한다.
    - create-drop : create와 동일한 기능을 수행하나 어플리케이션을 종료하는 시점에 테이블을 지운다.
    - update : SessionFactory가 실행될 때 객체를 검사해서 변경된 스키마를 갱신한다. 기존에 저장된 데이터는 유지된다.
    - validate : update처럼 객체를 검사하지만 스키마는 건드리지 않는다. 검사 과정에서 데이터베이스의 테이블 정보와 객체의 정보가 다르면 에러가 발생한다.
    - none : ddl-auto 기능을 사용하지 않는다.
profile
훈이야 화이팅

0개의 댓글