2️⃣주차 배운 내용
- 스프링에서 데이터베이스를 다루는 방법
- DB, Domain, Repository, Service, Controller
- yml 파일 과 properties 파일의 차이점
- 컴퓨터끼리의 통신 언어(XML, JSON의 구조)
- GET, POST, PUT, DELETE 요청
- MVC 패턴을 이용한 CRUD 게시판 생성 #1
properties 와 yml 파일 구조 및 장단점
#Application.properties
Spring-datasource-url = ""
Spring-datasource-username = ""
Spirng-datasource-password=""
#Application.yml
server : 8080
Spring
Datasource :
url: jdbc:mysql://localhost:3306/mentoring?serverTimezone=UTC
username: ""
password: ""
driver-class-name: com.mysql.cj.jdbc.Driver
~~
//properties방식은 key-value값을 지니며 외부구성의 속성을 결정
//yml방식은 계층구조 방식이며 값을 지정할 수 있음과 더불어 prefix의 중복제거 가능
이들은 스프링부트와 데이터베이스를 연결하기 위한 파일이다.
JSON과 XML 언어의 차이
#XML = <Dataset>데이터</Dataset>
#JSON =
{
"Dataset" : "데이터",
"Dataset2" : "데이터2"
}
//JSON 데이터가 XML 데이터보다 더 빨리 읽기,쓰기가 가능하다.
//JSON 데이터는 배열을 사용할 수 있지만, XML 데이터는 그렇지 않다.
//XML 데이터는 태그를 주로 사용한다.
//이들은 데이터를 교환 및 저장하기 위한 언어이다.
RestAPI와 GET, POST, PUT, DELETE
RestAPI : JSON언어를 기반으로 백엔드 서버 구축
HTTP Method(클라이언트와 서버가 통신을 하기 위함)의 일부
GET: DB에서 데이터를 가져올 때 사용(조회) READ
POST: DB에서 데이터를 저장할 때 사용(저장) CREATE
PUT: DB에서 기존 데이터를 꺼내고, 데이터를 수정할 때 사용(수정) UPDATE
DELETE: DB에서 데이터를 지울 때 사용된다.(삭제) DELETE
CRUD에서 조회는 GET, 저장은 POST, 수정은 PUT, 삭제는 DELETE를 사용한다.
controller, service, repository, entity
package : controller, service, entity, repository
↕↕↕ ↕↕↕↕ ↕↕↕↕ ↕↕↕
file : BoardController, Boardservice , Board , Boardrepository
BoardController
package com.example.mentoring.controller;
import com.example.mentoring.service.BoardService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@RestController //RestAPI 서버
@RequiredArgsConstructor //생성자
public class BoardController {
private final BoardService boardService;
//게시글 전체 조회
@GetMapping("/api/boards")
public ResponseEntity<?> findAllBoard()
{
return new ResponseEntity<>(BoardService.findAll(), HttpStatus.OK );
}
//게시글 단건 조회(일부조회)
@GetMapping("/api/boards/{id}")
public ResponseEntity<?> findBoard(@PathVariable("id") int id){
return new ResponseEntity<>(boardService.findBoard(id), HttpStatus.OK);
}
//게시글 작성
@PostMapping("/api/boards")
public ResponseEntity<?> writeBoard(@RequestBody Board board){
return new ResponseEntity<>(boardService.writeBoard(board),HttpStatus.CREATED);
}
//게시글 삭제
@DeleteMapping("/api/boards/{id}")
public ResponseEntity<?> deleteBoard(@PathVariable int id){
boardService.deleteBoard(id);
return new ResponseEntity<>("게시글 삭제 완료",HttpStatus.OK);
}
}
'Java > Spring' 카테고리의 다른 글
예외처리(Exception)기능 + Response 기능(데이터 반환) 을 추가한 게시판 만들기 코드 (2) | 2022.07.27 |
---|---|
스프링 스터디(RestAPI의 다양한 기능 추가(Exception, Response..) (0) | 2022.07.25 |
스프링 스터디(3주차) CRUD 게시판 만들기 + Postman 사용 (0) | 2022.07.20 |
스프링부트 기본구조 및 JPA (0) | 2022.07.04 |
spring boot 프로젝트 생성 및 mysql 스프링부트 연동 (0) | 2022.07.04 |