본문 바로가기

휴지통../Spring

SpringBoot + JPA + Mysql 로 REST API 만들기

이전 REST API는 DB 없이 내장 메모리를 통해 구현했기 때문에, DB를 사용한 Rest API를 작성하도록 하였다.

-굉장히 간단하다.

 

1. Start.Spring.io

스프링부트 생성 

 

Dependencies에 MySql DB를 사용하기 위해서 MySQL 드라이버를 추가하였고, JPA, Lombok을 추가로 주입하였다.

 

- application.properties

 

spring.jpa.show-sql=true
spring.jpa.generate-ddl=true

#Mysql
spring.jpa.database=mysql

#DBNAME = db??, username, password??
spring.datasource.url=jdbc:mysql://localhost:3306/lee?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=??
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

 

 

 

- DB 생성

 

number 을 기본키로 한 Player 테이블을 만들었다. number라는 칼럼명이 조금 생소해서 웬만하면 ID로 해야겠다.

 

- Entity와 Repository

 

 

 

- Controller

 

Rest API를 구현하기 위한 controller를 알아보자

 

@RestController 어노테이션을 통해서 Controller임을 선언해주고, @Autowired를 이용해서, 생성자를 선언해주었다.

 

-  GET

get

Get은 모든 데이터를 불러오는 역할을 하기 때문에, playerRepository.findAll()을 통해서 모든 값을 받아오기로 했다.

 

PostMan GET

 

PostMan으로 확인 시 DB안 알맞은 값이 나오는 것을 확인할 수 있다.

 

- POST

 

Post

post는 데이터를 보내는 역할을 하는데, URL을 통해 보내는 방법 (@RequestParam), Json Object로 보내는 방법(@RequestBody)로 작성했다. 

PostMan POST

 

 

- PUT

 

데이터를 수정하는데 사용하는 PUT이다.

 

put

 

PUT 역시 두가지 방법으로 실행하였다.  PlayerRepsoitory안에 있는 객체에 findById를 통해 해당 객체를 찾는다.

찾는 경우 (@pathVariable 어노테이션을 이용해서, 변하는 값을 컨트롤 할 수 있다.

이후 내가 입력하는 Json 객체 toplayer의 값을 set,get을 통해 설정해주면 된다.

 

PostMan 

 

 

 

-DELETE

 

다음은 삭제를 하는 DELETE PUT 과 같이 findById를 사용하여 삭제할 수 있다.

 

Delete

 

PostMan 삭제

 

삭제된 모습을 확인할 수 있다.

 

 

아주 간단하게 DB를 통해 REST API를 구현해보았다.