본문 바로가기

GSITM_하이미디어

Spring Boot - MySQL, JPA 연동

1. JPA란?

· Java Persistence API의 약자로 객체와 관계형 데이터베이스 간의 매핑을 손쉽게 처리
· 데이터베이스의 CRUD(Create, Read, Update, Delete) 작업 간편하게 수행 가능
· 대표적으로 Hibernate 사용
# 간단하게 요약하자면! Class와 RDB(Relational DataBase)의 테이블 매핑

2. SpringBoot와 MySQL 연동

1) project 생성

· Artifact: basicCRUD / Group: com.ex 
· ADD Dependencies: Spring Boot Dev Tools, Lombok, Spring Web, Thymeleaf, Spring Data JPA, MySQL Driver

 

2) Spring build.gradle: dependencies: jpa, mysql 관련된 항목 확인 가능

 

 ※ 기본 세팅 후, project 실행 시 아래와 같이 오류 발생 → 4번 항목 반드시 추가 필요
    · Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

    · 오류가 발생하는 이유? Database에 연결할 때 필요한 정보가 없거나 잘못되었기 때문!! 
 ※ dependencies 내용이 수정된 경우 코끼리 아이콘을 클릭하여 반드시 변경 사항 적용 필요!

 

 

3) DBeaver: 새로운 Database 생성 / DBname: member

 

4) Spring: application.properties에 DB 연결 코드 추가

· 2번째 행에서 localhost:3306 이후는 Database Name을 기재
· 3, 4번째 행, DB 로그인 정보 기재

 

 

5) DB 접속 정보 환경 변수로 설정
· 소스를 외부에 업데이트하는 경우 username과 password가 노출되므로 환경 변수 설정 필요

 

 

· project명 우측에 위치한 아래 화살표 → Edit Configurations 선택

 

 

· Edit environment variables 아이콘 선택 

 

 

· +버튼 선택 → 위에 설정한 변수 두 개 추가 → ok

 

 

· 기재한 내용이 맞는지 확인하고 Apply → ok

 

 

6) Spring: application.properties에 SQL 옵션 추가

◎ ddl-auto 속성의 종류
 · create: 매핑되는 테이블이 존재한다면 기존 테이블 삭제 후 생성, 보통 개발 초기 단계에만 사용! 가장 중요!!
 · update: 매핑되는 테이블이 존재한다면 새로운 컬럼이 추가된 변경사항만 반영, 모든 변경사항 반영 X
 · validate: 테이블 혹은 컬럼이 존재하지 않으면 예외 발생시키면서 종료, 생성 혹은 수정 X
 · none: 아무 일도 발생하지 X

 

7) DB 데이터에 접근하는 방법

◎ entity package와 Member.class 생성

< Member.class >

 

◎ 기본 키 생성 전략 (GenerationType)
· AUTO: 기본 세팅 값, DB에 따른 적절한 전략을 선택하며 벤더 사에 따라서 자동 결정
· IDENTITY: DB에 기본 키 생성을 위임, MySQL, MariaDB, PostgreSQL에서 사용
· SEQUENCE: 시퀀스를 사용하여 할당, ORACLE에서 사용
· TABLE: 별도의 DB 테이블을 사용하여 기본 키 관리
· UUID: 랜덤 값을 사용하여 기본 키 생성

 

 

8) Project 실행: DB 연결 상태가 정상이라면 DBeaver에 table이 생성된다!!

 

 

 

 

 

 

 

'GSITM_하이미디어' 카테고리의 다른 글

Git 설치와 VSCode 연동  (0) 2024.10.11
Spring Data JPA - H2 DB 설치와 Dummy data  (3) 2024.10.02
Spring Boot - Thymeleaf 기초  (0) 2024.09.24
DBeaver 설치 및 사용법  (0) 2024.09.10
MySQL WorkBench 사용법  (0) 2024.09.09