본문 바로가기
Programming/Spring Boot

인텔리제이(IntelliJ)로 스프링부트(Spring Boot)와 MySQL 연동하기

by 돌방로그 2023. 1. 19.

제목의 글을 설명하기에 앞서 정보전달의 목적도 있지만, 

제가 잊지않기 위해서 공부 및 정리하며 쓰는 글이라는 사실을 미리 고지합니다.

 

혹시라도 오입력된 정보가 있다면, 댓글 남겨주세요!


IntelliJ와 Spring Boot 개발환경, DB(MySQL) 구축을 완료했다면,

IntelliJ를 통해서 Spring Boot와  DB인 MySQL을 연동하는 작업을 수행합니다.

 

아래 사항이 모두 구축되었다는 가정하에 아래 단계를 진행할 수 있습니다.

  • IntelliJ, MySQL 설치
  • Spring Boot 프로젝스 생성
  • MySQL 내 Spring Boot와 연동할 Schema 생성

Spring Boot와 MySQL 연동하기

설정

의존성(Dependency) 추가

신규 프로젝트 생성시 의존성(Dependency)로 DB 정보를 추가하지 않은 경우, 아래 링크를 참조하여 DB와 ORM 관련 의존성을 추가합니다.

https://logs-jejustone.tistory.com/60

 

제가 추가한 의존성은 아래 2가지(MySQL, JPA)입니다.

dependencies {
	...
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa:3.0.1'
	runtimeOnly 'mysql:mysql-connector-java:8.0.30'
	...
}

 

DB 정보 추가

'application.properties' 파일에 DB 정보를 추가합니다.

아래 코드에서 {}로 정의된 사항은 개인이 DB를 구축할 때 설정한 정보를 입력하는 곳입니다.

# DB
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://{IP}:{PORT}/{스키마명}?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul
spring.datasource.username={계정 명}
spring.datasource.password={계정 비밀번호}

#JPA
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true
  •  DB(datasource)
    • driver-class-name: 사용할 DB 종류 설정
    • url: 사용할 DB의 경로 설정
    • username: 계정명 설정
    • password: 계정 비밀번호 설정
  • JPA
    • show-sql: JPA Query Statement 확인 가능
    • hibernate.ddl-auto: DDL(Create, Alter, Drop) 정의시 DB 고유 기능 사용
    • properties.hibernate.format_sql: JPA 구현체인 Hibernate가 동작하며 발생한 SQL의 가독성을 높여줌

 

예시

# DB
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/web-app?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul
spring.datasource.username=root
spring.datasource.password=q1w2e3r4

#JPA
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true

 


테스트

테이블이 정상적으로 생성(Create)되는지 확인하는 코드를 구현하고 이를 MySQL Workbench에서 정상적으로 테이블이 생성되었는지 확인합니다.

(아래는 임시로 생성한 파일, 테이블이기 때문에 테스트 완료 후 모두 제거하였습니다.)

 

1. IntelliJ에서 '{프로젝트명}Application.java'와 동일한 위치에 'DemoMemo.java' 파일을 생성합니다.

 

2. 해당 파일의 코드로 아래 코드를 복사/붙여넣기합니다.

import jakarta.persistence.*;

@Entity
@Table(name = "tbl_memo")
public class DemoMemo {
    @Id
    @GeneratedValue(strategy =  GenerationType.IDENTITY)
    private Long id;

    @Column
    private String memoText;
}

 

3. Spring Boot 프로젝트를 구동하여 정상적으로 구동되는지 확인합니다.

  • 방법 1: 'Shift + F10'
  • 방법 2: Run > Run '{프로젝트명}Application' 클릭

 

4. 정상적으로 구동이 된 경우, 아래와 같이 'Started {프로젝트명}Application in ~~ seconds'로 가장 하위에 메세지가 표시됩니다.

 

5. 정상적으로 구동 메세지가 표시되는 경우, 구동 메세지에서 'Hibernate'라고 표시된 부분을 찾아서 SQL을 확인합니다.

 

6. MySQL Workbench에서 IntelliJ에 연결한 스키마에 'tbl_memo' 테이블 및 컬럼이 정상적으로 생성되었는지 확인합니다.

좌: Spring Boot 프로젝트 구동 전 우: Spring Boot 프로젝트 구동 후

 

 


References

 

 

댓글