Book/스프링부트 핵심가이드

스프링부트 프로젝트 생성(feat. MariaDB)

블로그 주인장 2023. 11. 2.

데이터베이스 연동

스프링부트 애플리케이션을 연동하여 프로젝트를 생성하는 것을 알아보겠습니다.

 

프로젝트 생성


  • groupId(그룹) : com.springboot
  • name(이름), artifactId(아티팩트) : jpa
  • Developer Tools : Lombok, Spring Configuration Processor
  • Web : Spring Web
  • SQL : Spring Data JPA, MariaDB Server

 

추가 내용


Swagger 의존성

  • pom.xml(Maven)에 추가

 

소스코드

  • config/SwaggerConfiguration.java
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.springboot.jpa"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Spring Boot Open API Test with Swagger")
                .description("설명 부분")
                .version("1.0.0")
                .build();
    }

}

 

application.properties 작성

  • Spring Data JPA 의존성을 추가하면 별도의 설정이 필요하다
  • 애플리케이션을 정상적으로 실행될 수 있게 연동할 데이터베이스 정보를 application.properties에 작성한다.
  • 해당 설정 없이는 스프링 부트 애플리케이션이 실행되지 않는다.
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/springboot
spring.datasource.username=root
spring.datasource.password=1234

spring.jpa.hibernate.ddl-auto=create
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

spring.datasource 설정

  • spring.datasource.driver-class-name : 연동하려는 데이터베이스의 드라이버를 정의한다.
  • spring.datasource.url : 사용하려는 DB인 mariadb의 경로임을 명시하고, 경로와 데이터베이스명을 입력한다.
  • username, password : 데이터베이스 설치 시에, 설정한 계정 정보를 기입한다.

spring.jpa.hibernate.ddl-auto 설정

  1. create : 애플리케이션이 가동되고 SessionFactory가 실행될 때 기존 테이블을 지우고 새로 생성한다.
  2. create-drop : create와 동일한 기능을 수행하나 애플리케이션을 종료하는 시점에 테이블을 지운다.
  3. update : SessionFactory가 실행될 때, 객체를 검사해서 변경된 스키마를 갱신한다. 기존에 저장된 데이터는 유지한다.
  4. validate : update처럼 객체를 검사하지만 스키마는 건드리지 않는다. 검사 과정에서 데이터베이스의 테이블 정보와 객체 정보가 다르면 에러를 발생시킨다.
  5. none : ddl-auto 기능을 사용하지 않는다.

운영 환경에서는 대체로 validate / none 을 사용한다.

개발 환경에서는 create / update 를 사용하는 편이다.

 

spring.jpa.show-sql 설정

  • 로그에 하이버네이트가 생성된 쿼리문을 출력하는 옶션이다.
  • 아무 설정이 없으면 저장에 용이한 형태로 출력되기 때문에 사람이 보기에는 불편하게 한 줄로 출력이 된다.

spring.jpa.properties.hibernate.format.sql 설정

  • 출력값을 한 눈에 확인하기 좋게 포매팅(formatting)을 할 수 있다.
반응형

댓글