[Spring Boot]MySQL+JPA 연동하기

한상욱·2023년 11월 6일
0

Spring Boot

목록 보기
6/17
post-thumbnail

들어가며

이 글은 Spring Boot를 공부하며 정리한 글입니다.

데이터베이스

어플리케이션에서 데이터베이스가 없다면, 사용자에게 전달되는 정보는 대부분 일시적인 정보겠죠. 하지만, 데이터베이스를 이용하여 모든 사용자에게 동일한 정보를 전달할 수 있습니다. 그렇기에 MySQL과 Spring boot를 연동하는 법에 대해서 알아보겠습니다.

데이터베이스 생성

사용할 데이터베이스와 사용자는 미리 MySQL을 통해 생성하였습니다.. 하단 링크에서 사용자와 데이터베이스 생성법에 대해서 다루고 있습니다.

MySQL 사용자, 데이터베이스 생성하는법

프로젝트 생성

spring web, jpa, mysql driver를 추가해준 상태에서 프로젝트를 추가합니다.

의존성 추가

Spring 프로젝트에서 MySQL을 사용하기 위해서 아래와 같은 의존성이 추가되어 있어야 합니다.

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-data-jpa") # JPA
    implementation("org.springframework.boot:spring-boot-starter-web") # WEB
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    implementation("org.jetbrains.kotlin:kotlin-reflect")
    runtimeOnly("com.mysql:mysql-connector-j") # MySQL
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

application.yml

application.property처럼 프로젝트에 설정할 수 있는 파일은 yml 확장을 이용하는 것입니다. yml이 확실히 더 편한것 같아서 바꿨습니다.

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: "jdbc:mysql://[DB서버IP]:[DB포트]/[DB 스키마]?autoReconnect=true&useUnicode=true&serverTimezone=Asia/Seoul"
    username: [DB사용자]
    password: [패스워드]
  jpa:
    database: mysql
    database-platform: org.hibernate.dialect.MySQL8Dialect
    properties:
      hibernate:
        storage_engine: innodb
        format_sql: true
        use_sql_comments: true
    hibernate:
      ddl-auto: create # 설정해야 테이블 자동생성
    open-in-view: false
    show_sql: true

엔티티 정의

자, 이제 Entity를 정의하겠습니다. Entity를 정의하고 난 후 프로젝트를 실행하게 되면 MySQL DB에 해당 테이블이 생성됩니다.

import jakarta.persistence.Entity
import jakarta.persistence.Id

@Entity
class Human (
    @Id
    var id : Int,
    var name : String,
)

예시에서 사용하는 것은 Human입니다. 해당 테이블에는 id, name 필드가 생성될 것입니다.

결과확인

프로젝트를 실행한 후 터미널을 통해서 테이블이 생성되었는지 확인해보겠습니다. 프로젝트에 설정한 사용자로 접속한 후 해당 스키마의 테이블을 보도록 하겠습니다.

성공적으로 테이블이 생성되었습니다.

profile
자기주도적, 지속 성장하는 모바일앱 개발자가 되기 위해

0개의 댓글