[JPA] 데이터베이스 연동
#. Spring Data JPA 의존성 추가
-애플리케이션이 정상적으로 실행될 수 있게 연동할 데이터 베이스의 정보를 application.properties에 작성
-이게 없으면 스프링 부트 애플리케이션이 실행되지 않는다.
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/DB_name?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=true
spring.datasource.hikari.username=db.username
spring.datasource.hikari.password=db.password
spring.jpa.hibernate.ddl-auto=create
spring.jpa.show-sql=true;
spring.jpa.properties.hibernate.format_sql=true;
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
* 1-4번째 줄은 데이터베이스 연동하는 데 사용하는 값을 설정
* 3-4번째 줄은 데이터베이스를 설치할 때 설정한 계정 정보를 기입
* 6-8번째 줄은 *하이버네이트 활성화할 수 있는 선택사항
* 10번째 줄은 mysql사용 시 작성
* 6번째 줄의 ddl-auto는 데이터베이스를 자동으로 조작하는 옵션
> create : 어플리케이션이 가동되고 SessionFactory가 실행될 때 기존 테이블을 지우고 새로 생성
> create-drop : create와 동일한 기능을 수행하나 애플리케이션이 종료되는 시점에 테이블을 지운다.
> update : SessionFactory가 실행될 때 객체를 검사해서 변경된 스키마를 갱신, 기존에 저장된 데이터는 유지
> validate : update처럼 객체를 검사하지만 스키마는 건드리지 않는다. - DB의 테이블 정보와 객체의 정보가 다르면 에러
> none : ddl-auto 기능을 사용하지않는다.
TIP.운영환경에서는 create, create-drop, update 기능은 사용하지않는다. validate, none을 주로 사용
>데이터베이스에 축적된 데이터를 지워버릴 수도 있고, 사람의 실수로 객체의 정보가 변경됐을 때 운영 환경의 데이터베이스 정보까지 변경될 수 있기 때문이다.
TIP.개발환겨에서는 create 또는 update를 사용하는 편