본문 바로가기
Framework/Spring

[Spring] MySQL 연동 (JPA, application.properties)

by pcm9881 2023. 6. 2.
# Spring DataSource (MySQL)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/데이터베이스명?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=아이디
spring.datasource.password=비밀번호

# Spring JPA
spring.jpa.database=mysql
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
spring.jpa.hibernate.ddl-auto=none
spring.jpa.generate-ddl=false
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

 

 

Spring DataSource (MySQL)

spring.datasource.driver-class-name: 스프링 데이터소스 드라이버 클래스 이름을 입력합니다.

- MySQL: com.mysql.cj.jdbc.Driver

- PostgreSQL:  org.postgresql.Driver

 

spring.datasource.url: JDBC MySQL 접속 URL 입력합니다.

 

spring.datasource.username: MySQL 데이터베이스 유저 아이디를 입력합니다.

 

spring.datasource.password: MySQL 데이터베이스 유저 비밀번호를 입력합니다.

 

 

Spring JPA

spring.jpa.database: 사용하는 데이터베이스 종류를 입력합니다.

 

spring.jpa.hibernate.ddl-auto:

- none: 기본값, 데이터베이스 구조는 변경되지 않습니다.

- update: Hibernate 주어진 엔터티 구조에 따라 데이터베이스를 변경합니다.

- create: 매번 데이터베이스를 생성하지만 닫을 때 삭제하지 않습니다.

- create-drop: 데이터베이스를 생성하고 SessionFactory가 닫힐 때 삭제합니다.

 

spring.jpa.generate-ddl: 시작시 스키마 초기화할 지 여부입니다.

 

spring.jpa.show-sql: SQL문 로깅 활성화 여부입니다.

 

spring.jpa.database-platform

- MySQL: org.hibernate.dialect.MySQL8Dialect

- PostgreSQL: org.hibernate.dialect.PostgreSQLDialect 

 

spring.jpa.properties.hibernate.format_sql: log, console에 SQL문을 보기좋게 출력합니다.

 

spring.jpa.hibernate.jdbc.time_zone: @createdAt, @updatedAt 타임스탬프 시간 설정

- Asia/Seoul

* MySQL에 경우 serverTimezone=Asia/Seoul로 직접 설정 해도 된다.

 

 

참조

[Spring.io MySQL]: https://spring.io/guides/gs/accessing-data-mysql/

 

Getting Started | Accessing data with MySQL

When you are on a production environment, you may be exposed to SQL injection attacks. A hacker may inject DROP TABLE or any other destructive SQL commands. So, as a security practice, you should make some changes to your database before you expose the app

spring.io

[Spring.io application-properties]: https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html

 

Common Application Properties

 

docs.spring.io

[Baeldung hibernate-lazy-loading]: https://www.baeldung.com/hibernate-lazy-loading-workaround

728x90

댓글