[SpringBoot] mysql 연동하는 방법

2023. 5. 25. 00:01· Backend/🌿Spring
목차
  1. 프로젝트 설정
  2. 의존성 추가
  3. MySQL 설정
  4. 엔티티 클래스 설정
  5. Repository class 정의

안녕하세요~! Spring Boot와 MySQL을 연동하는 방법을 알려드리려 합니다. Spring Data JPA와 MySQL을 활용하여 사용자 데이터를 관리하는 기본적인 CRUD(Create, Read, Update, Delete) 기능을 구현하는 과정을 차근차근 알아가 보겠습니다.

 

프로젝트 설정

먼저 application.yml 기본 설정부터 알려드리겠습니다.

spring:
  jpa:
    database: mysql
    hibernate.ddl-auto: update
    show-sql: true
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:{portNum}/{databaseName}?serverTimezone=Asia/Seoul
    username: root
    password: {yourPassword}

portNum에 여러분이 설정한 포트번호(대략:3306)와 데이터베이스 이름(예를들어 mydb)그리고 패스워드를 설정해줍니다.

추가적으로 username도 설정하실수 있습니다.

 

의존성 추가

pom.xml 또는 build.gradle 파일에 Spring Data JPA와 MySQL 드라이버를 위한 의존성을 추가합니다.

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'mysql:mysql-connector-java:8.0.33'

8.0.33에는 다운로드 받으신 mysql 버전을 적으시면 됩니다.

 

MySQL 설정

이후 {databaseName}과 같은 데이터 베이스를 만드신후 SpringBoot에서 Entity를 설정해 주겠습니다.

create database mydb;
use mydb;

create table app_user(
    id INT PRIMARY key AUTO_INCREMENT,
    email VARCHAR(255) UNIQUE NOT NULL,
    name VARCHAR(255) NOT NULL,
    role VARCHAR(255) NOT NULL
);

 

엔티티 클래스 설정

예를들어 User와 같은 class로 맵핑을 해준뒤 아래 코드의 버전은 SpringBoot 3.0이상입니다.

@Entity(name = "app_user")
@Table(name = "app_user")
@NoArgsConstructor
@Getter
@Builder
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private int id;
    @Column(name = "email", nullable = false, unique = true)
    private String email;

    @Column(name = "name", nullable = false)
    private String name;

    @Enumerated(EnumType.STRING)
    @Column(name = "role", nullable = false)
    private Role role;

    @Builder
    public User(int id, String email, String name, Role role) {
        this.id = id;
        this.name = name;
        this.email = email;
        this.role = role;
    }
 }

 

Repository class 정의

JpaRepository를 통해 mysql로 업데이트 해주시면 되겠습니다!!

/**
 * JpaRepository를 확장함으로써, UserRepository는 User 엔티티에 대한 
 * CRUD(Create, Read, Update, Delete) 기능을 제공합니다.
 */
 
public interface UserRepository extends JpaRepository<User, Long> {
    Optional<User> findByEmail(String email);
}

 

감사합니다.🙄

'Backend > 🌿Spring' 카테고리의 다른 글

[JPA] 의존 관계에 있는 연관된 데이터 삭제 처리: Spring과 JPA 및 Query  (0) 2024.01.20
[SpringBoot/Error] Required URI template variable 'id' for method parameter type int is not present 해결  (0) 2024.01.19
[Spring] 좋은 객체 지향 설계의 5가지 원칙 (SOLID)  (2) 2023.10.11
[Spring Boot] application.yml 내용 secret으로 관리하기  (0) 2023.09.02
[SpringBoot/Error] version 3.0 OAuth2.0 카카오 로그인 오류  (2) 2023.05.24
  1. 프로젝트 설정
  2. 의존성 추가
  3. MySQL 설정
  4. 엔티티 클래스 설정
  5. Repository class 정의
'Backend/🌿Spring' 카테고리의 다른 글
  • [SpringBoot/Error] Required URI template variable 'id' for method parameter type int is not present 해결
  • [Spring] 좋은 객체 지향 설계의 5가지 원칙 (SOLID)
  • [Spring Boot] application.yml 내용 secret으로 관리하기
  • [SpringBoot/Error] version 3.0 OAuth2.0 카카오 로그인 오류
발달중인 망고
발달중인 망고
Kangwon uni. Department of Computer Engineering
발달중인 망고
망고의 개발일기
발달중인 망고
전체
오늘
어제
  • ROOT (85)
    • 🥭Mango Odyssey (3)
    • Backend (1)
      • 🌿Spring (16)
    • Frontend (3)
      • React (1)
      • Thymeleaf (1)
      • Flutter (1)
    • DevOps (7)
      • AWS (5)
      • Docker (2)
    • Git (5)
    • Knowledge (18)
      • Java (12)
      • Python (6)
    • Activities (10)
      • 우아한 테크 프리코스 (7)
      • itwill (1)
      • 프리온보딩 백엔드 챌린지 12월 (0)
      • 스위프(SWYP) 3기 (1)
      • 팀 맥플러리 (1)
    • SQL (5)
    • IoT (4)
      • 아두이노 (4)
    • AI (1)
    • OS (1)
    • 일상 (8)
      • 일기 (6)
      • 독서 (0)
      • 잡생각 (1)
    • 언젠가 분류될 카테고리 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • EC2
  • 알고리즘
  • MVC
  • 자바
  • AWS
  • 아두이노
  • 코드트리
  • spring boot
  • 문제풀이
  • 회고록
  • JPA
  • Model
  • 코딩테스트
  • 소스코드
  • 깃허브
  • 백엔드
  • baekjoon
  • 코드소스
  • SQL
  • 파이썬
  • Spring
  • 우테코
  • GIT
  • 백준
  • DB
  • 스프링부트
  • 코드
  • Java
  • springboot
  • python

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
발달중인 망고
[SpringBoot] mysql 연동하는 방법
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.