Spring boot를 이용한 게시판 만들기 - JPA를 이용하여 데이터베이스 연결(1)

2022. 5. 17. 11:30Java/Spring

저번에는 JPA가 아니라 MyBatis로 연동을 하였는데, 이번에는 JPA를 사용해서 데이터베이스 연결을 하도록 하겠습니다. (쉬움)

 

일단 Spring Initializr를 이용해서 프로젝트를 생성해 줍니다.

https://start.spring.io/

프로젝트 생성 사이트

사이트에 들어가서 위 사진과 같이 세팅을 하고 아래에 GENERATE 버튼을 눌러서 프로젝트를 다운로드합니다.

 

IntelliJ 혹은 Eclipse를 이용해서 다운로드한 프로젝트를 열어줍니다. (저는 개인적으로 인텔리제이를 사용합니다.)

프로젝트를 열게 되면 색인 생성 및 빌드를 하는데, 약 1분에서 2분 정도 기다려주면 끝납니다.

 

이제 기본적인 세팅을 하겠습니다.

src/main/resources 폴더 안에 application.properties 리소스 번들 파일을 열어줍니다.

application.properties 위치

열면 아무 코드도 없는 것을 확인할 수 있는데, 아래 코드를 추가하도록 하겠습니다.

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.url=jdbc:mysql://localhost:3306/board

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

ddl-auto는 JPA로 DB를 초기화하는 전략을 만들 때 사용합니다.

옵션으로는 none, create, update, validate, create-drop이 있습니다.

  • none: 아무 일도 안 일어남 (초기값)
  • create: 애플리케이션이 실행될 때만 drop 하고 다시 create 함
  • update: 변경된 스키마만 적용
  • validate: 변경된 스키마가 있는지 확인만 함, 변경이 있을 시 애플리케이션 종료
  • create-drop: create와 비슷하지만 애플리케이션 종료 시에 drop 함

이제 데이터베이스가 연결이 되어있는지 확인을 해보겠습니다.

src/main/java/com.example.board패키지 안에다가 User 클래스를 생성하겠습니다.

User 클래스 코드는 아래와 같이 짜도록 하겠습니다.

package com.example.board;

import lombok.Getter;

import javax.persistence.*;

@Entity
@Getter
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String name;

}

@Entity는 아래에 정의된 필드들을 바탕으로 데이터베이스를 만들어주는 어노테이션입니다.

@Id는 Primary key와 똑같은 의미를 가진 어노테이션입니다.

@GeneratedValue는 이 Primary key가 자동으로 1씩 증가하는 형태로 생성할지 등을 결정하는 어노테이션입니다.

 

 

이제 한번 애플리케이션을 실행해보도록 하겠습니다.

실행 시에 아래와 같은 로그가 보이면 데이터베이스와 연결이 잘 되었다는 뜻입니다.

MySQL에도 잘 들어간 것을 볼 수 있습니다.

이렇게 하면 데이터베이스 연결은 끝이 납니다.

확실히 MyBatis를 사용해서 연결하는 것보다는 훨씬 쉽다는 것을 확인할 수 있습니다.