JPA를 이용하여 데이터베이스를 사용하기 위해서는 스프링 부트 어플리케이션과 연동해야 한다.
Spring Data JPA 의존성을 추가한 후에는 별도의 설정이 필요하다. 연동할 데이터 베이스의 정보를 application.properties에 작성해야 한다. 이 설정 없이는 스프링 부트 어플리케이션이 실행되지 않는다.
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 | 연동하려는 데이터베이스의 드라이버를 정의 |
url | DB의 경로와 데이터베이스명을 입력한다. |
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 기능을 사용하지 않는다. |