728x90
스프링 부트와 MySQL을 연동하는 방법에 대해 알아보겠습니다.
여기서는 application.properties 파일에 필요한 설정을 추가하는 방법을 설명하겠습니다.
MySQL JDBC 드라이버 의존성 추가
먼저, pom.xml 파일에 MySQL JDBC 드라이버 의존성을 추가해야 합니다 :
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
(만약 Cannot resolve mysql:mysql-connector-java:unknown 오류가 나올 경우, version을 제대로 설정해주셔야 합니다! )
데이터베이스 연결 정보 설정
application.properties 파일에 데이터베이스 연결 정보를 설정합니다 :
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://(localhost:3306)/(db_name)?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=(your_username)
spring.datasource.password=(your_password)
(소괄호 안 내용은 본인 설정에 맞게 수정하셔야 합니다. )
JPA 설정
마지막으로, 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
이 설정들은 JPA가 MySQL 데이터베이스를 사용하도록 설정하고, SQL 쿼리를 콘솔에 출력하도록 설정합니다.
아래는 각 설정별 설명입니다 :
// JDBC 드라이버의 클래스 이름입니다.
spring.datasource.driver-class-name
// 데이터베이스 연결 URL입니다.
spring.datasource.url
// 데이터베이스 연결 사용자 이름입니다.
spring.datasource.username
// 데이터베이스 연결 비밀번호입니다.
spring.datasource.password
// JPA가 사용할 데이터베이스를 지정합니다. 여기서는 MySQL을 사용하므로 mysql을 설정합니다.
spring.jpa.database
// JPA가 사용할 Hibernate 방언을 지정합니다. MySQL 8을 사용하므로 org.hibernate.dialect.MySQL8Dialect을 설정합니다.
spring.jpa.database-platform
// 데이터베이스 스키마를 자동으로 생성하거나 수정할지 여부를 설정합니다. none을 설정하면 자동 생성 또는 수정을 하지 않습니다.
spring.jpa.hibernate.ddl-auto
// DDL 스크립트를 생성할지 여부를 설정합니다. false를 설정하면 DDL 스크립트를 생성하지 않습니다.
spring.jpa.generate-ddl
// SQL 쿼리를 콘솔에 출력할지 여부를 설정합니다. true를 설정하면 SQL 쿼리를 콘솔에 출력합니다.
spring.jpa.show-sql
// SQL 쿼리를 가독성 좋게 포맷할지 여부를 설정합니다. true를 설정하면 SQL 쿼리를 포맷합니다.
spring.jpa.properties.hibernate.format_sql
이제 스프링 부트 애플리케이션과 MySQL 데이터베이스가 연동되었습니다.
이제 애플리케이션을 실행하면 MySQL 데이터베이스에 접속하여 데이터를 조회하거나 수정할 수 있습니다.
728x90
'Java > Spring' 카테고리의 다른 글
Spring이란? (0) | 2023.12.09 |
---|---|
Spring Security (1) | 2023.11.27 |