Backend/Spring

[Spring Boot ③] 회원 기능 실습 - DB 설정 JPA (스프링부트 입문 / JPA / H2 / 스프링부트 기초 / CRUD 실습 / 인텔리제이)

비전공자 기록광 2021. 7. 12. 17:08
반응형

2021.07.12 - [IT 독학/WEB] - [Spring Boot ①] 회원 기능 실습 - Repository (스프링부트 입문 / JPA / 스프링부트 기초 / CRUD 실습 / 인텔리제이)

2021.07.12 - [IT 독학/WEB] - [Spring Boot ②] 회원 기능 실습 - Controller (스프링부트 입문 / JPA / 스프링부트 기초 / CRUD 실습 / 인텔리제이)

 

이번 실습은 인프런 스프링 부트 강의 중 가장 유명한 김영한 선생님의 강의를 토대로 만들었다.

무료고 강의 자체가 짧아 금방 볼 수 있다. 추천 추천!! 😲😲

 

https://inf.run/odFb

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세

www.inflearn.com

 

스프링 부트 회원 기능 실습

이번에는 DB를 설정해준다.

 

앞서 실습에서 회원 가입하고 목록 조회하는 실습을 해줬는데 DB를 연결해주지 않아

서버가 재시작할 때마다 가입된 회원이 사라져 새로 시작됐다.

 

 

이전 실습에서는 JDBC와 Mybatis로 DB 연결, 쿼리 실행 등을 했는데

이번에는 스프링부트와 떼놓을 수 없는 JPA를 이용해 실습을 진행하겠다.

 

일단 JPA는 자바에서 RDBMS를 사용하기 위한 방식을 정의한 인터페이스라고 간단히 설명할 수 있다.

 

 

1. H2 database 설치

미리 설치된 오라클 혹은 MySQL을 써도 된다.

일단 나는 강의에 맞춰 H2를 다운받아 실습했다.

 

H2 Database Engine

 

H2 Database Engine

H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2 MB jar file size     Suppor

www.h2database.com

 

압축을 풀고 파일 위치로 접근해 h2.bat을 실행해준다.

 

바로 이렇게 창이 뜬다. 연결을 눌러 들어가면 된다.

 

 

2. member 테이블 생성

 

 

id와 name 컬럼으로 구성된 member테이블을 생성해줬다.

 

 

3. H2, JPA라이브러리 추가

 

둘을 추가해주고 gradle refresh를 해준다.

 

application.properties 에서 DB 설정을 해준다.

 

 

4. JPA 작성

 

4-1. domain member

 

@Entity  : JPA가 관리하는 entity로 정의됨

@Id : PK 선언

@GeneratedValue : 테이블 생성시 추가했던 id bigint generated by default as identity, 조건은 자동으로 id값이 생성되고 증가된다는 것이다. 이를 id에서 선언해준다.

 

 

4-2. JpaMemberRepository 생성

 

JpaMemberRepository를 만들어 MemberRepository를 상속받아 준다.

 

 

그리고 엔터티를 쉽게 저장관리해주는 EntityManager를 주입받아준다.

그리고 EntityManager 문법에 따라 메소드를 작성해준다.

 

 

엔터티를 저장할때는 em.persist( )를, 엔터티를 조회할때는 em.find( )를 쓴다.

쿼리문을 작성하지 않아도 이렇게만으로 DB에 접근이 가능한 것이다. 굉장히 쉽고 획기적이다.

 

 

5. @Tranactional 처리

 

 

JPA를 사용하기위해선 트랜잭션이 필요하다. JPA를 통한 데이터변경은 모두 트랜잭션 안에서 실행되어야한다.

 

 

6. 스프링 빈 설정 등록

 

 

SpringConfig에서 빈등록까지 해주면 진짜 끝이다.

 

그리고 서버 실행하고 회원 등록, 목록 읽기를 해주면 잘 뜨는 걸 볼 수있다.

 

반응형