[Spring Boot] MariaDB + JPA 연동하기

    Spring Boot+JPA+MariaDB 시작하기

    Spring Boot + JPA + mariaDB 조합 프로젝트 설정을 정리하고자 한다.

    https://start.spring.io/ 에서 dependency를 추가하여 프로젝트를 생성한 뒤 적절하게 DB 및 logging 설정을 입력하자.

    1. mariaDB 설치

    docker로 mariadb 설치하기 를 참고해서 mariaDB를 설치하거나 설치 파일을 이용하여 직접 mariaDB 를 설치한다.

    2. Dependencies 를 빌드 명세에 추가하기

    Maven, Gradle 둘 중 무엇을 사용해도 상관없으며 jpa, mariaDB 의존성을 추가하면 된다.

    MariaDB Java Client 는 최신 버전을 조회하여 추가하였다.
    https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client

    Test dependency 는 프로젝트에 Junit4를 쓸지 Junit5를 쓸지에 따라 설정이 달라진다. spring-boot-starter-test 에 junit-vintage-engine 을 제외하여 Junit5 만 쓸 수 있게 하였다.

    • JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

    Lombok도 잊지말고 추가하자. 롬복 Dependency 설정

    Maven 사용 시 pom.xml 에 추가

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <!-- jpa -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    
    <!-- mariadb -->
    <dependency>
        <groupId>org.mariadb.jdbc</groupId>
        <artifactId>mariadb-java-client</artifactId>
        <version>2.7.4</version>
    </dependency>
    
    <!-- lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.junit.vintage</groupId>
          <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    Gradle 사용 시 build.gradle 에 추가

    dependencies {
     implementation 'org.springframework.boot:spring-boot-starter-web'
     implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
     runtimeOnly 'org.mariadb.jdbc:mariadb-java-client:2.7.4'
     compileOnly 'org.projectlombok:lombok'
     annotationProcessor 'org.projectlombok:lombok'
     testImplementation('org.springframework.boot:spring-boot-starter-test') {
      exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
     }
    }
    • runtimeOnly : 실행 시점에만 필요

    3. DB 및 logging 설정 추가

    application.properties 혹은 application.yml 에 설정을 추가한다.
    spring.datasource 는 필수로 추가하여야 하고 그 외 정보는 필자가 프로젝트 설정 시 자주 복붙하는 기본 설정이다. 프로젝트에 맞게 그때 그때 logging 설정을 변경하면 된다.

    application.properties 사용 할 때

    spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
    spring.datasource.url=jdbc:mariadb://localhost:3306/DB명
    spring.datasource.username=userName
    spring.datasource.password=password
    
    #update the schema with the given values.
    spring.jpa.hibernate.ddl-auto=update
    #To beautify or pretty print the SQL
    spring.jpa.properties.hibernate.format_sql=true
    #show sql
    spring.jpa.properties.hibernate.show-sql=true
    #show parameter binding
    logging.level.org.hibernate.type.descriptor.sql=DEBUG
    
    logging.level.org.hibernate.SQL=DEBUG

    application.yml 사용 할 때

    spring:
      datasource:
        driver-class-name: org.mariadb.jdbc.Driver
        url: jdbc:mariadb://localhost:3306/DB명?characterEncoding=UTF-8&serverTimezone=UTC
        username: userName
        password: password
    
      jpa:
        hibernate:
          ddl-auto: update
        properties:
          hibernate:
            format_sql: true #To beautify or pretty print the SQL
            show_sql: true #show sql
    
    logging:
      level:
        org.hibernate:
          type.descriptor.sql: trace #show parameter binding
          SQL: DEBUG

    4. 마치며

    Spring boot + JPA + MariaDB 로 프로젝트를 시작해보자

    참고

    반응형

    댓글

    Designed by JB FACTORY