<a>나 <form>을 통해 다른 페이지로 이동하겠다는 요청만 전달하고 그 결과 페이지를 그대로 응답받는 단순 내비게이션 기능이다<a href="/articles/new">New Article</a>
<a href="/articles">Back</a>
리다이렉드: 클라이언트의 요청를 받아 새로운 URL 주소로 재요청하라고 지시하는 것이다
return "redirect:URL_주소";
//show.mustache
<a href="/articles">Go to Article List</a>
<td colspan="2"><a href="/articles/{{id}}">{{title}}</td>
- 1단계: <수정 페이지> 만들고 기존 데이터 불러오기
[목록 페이지]
│ (항목 클릭)
v
[상세 페이지]
│ (Edit 버튼)
v
[컨트롤러] ── DB에서 기존 데이터 조회 ──> [모델에 담음]
│
v
[수정 폼 페이지 렌더]
- 2단계: 데이터를 수정해 DB에 반영한 후 결과를 볼 수 있게 <상세 페이지>로 리다이렉트하기
[수정 폼 페이지] --(Submit: 폼데이터)--> [컨트롤러]
│
└─ DTO 생성 → 엔티티로 변환/병합 → 리포지토리.save() → DB 갱신
│
v
리다이렉트(결과 확인용 페이지 또는 목록)
HTTP 메소드
CRUD를 위한 SQL 문과 HTTP 메서드
| 데이터 관리 | SQL | HTTP |
|---|---|---|
| Create | INSERT | POST |
| Read | SELECT | GET |
| Update | UPDATE | PATCH (PUT) |
| Delete | DELETE | DELETE |
[상세 페이지] (Delete 클릭)
│ POST/GET /articles/{id}/delete
v
[컨트롤러] ── findById(id) → 존재 확인
│
├─ 존재 O → repository.delete(엔티티)
│
└─ 존재 X → 아무 것도 안 함
v
redirect:/articles (목록)
[컨트롤러]
delete 성공 → redirectAttributes.addFlashAttribute("msg", "삭제되었습니다!")
└─ redirect:/articles
│
v
[목록 페이지 index.mustache]
{{#msg}} 삭제되었습니다! {{/msg}}
DELETE [FROM] 테이블면 WHERE 조건;
# resources/application.properties
# JPA 로깅 설정
# 디버그 레벨로 쿼리 출력
logging.level.org.hibernate.SQL=DEBUG
# 쿼리 줄바꿈하기
spring.jpa.properties.hibernate.format_sql=true
# 매개변수 값 보여 주기
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
# DB URL 설정
# 유니크 URL 생성하지 않기
spring.datasource.generate-unique-name=false
# 고정 URL 설정하기
spring.datasource.url=jdbc:h2:mem:testdb
로깅 레벨은 7단계가 있다:
서버 실행하고 쿼리 확인:

H2 Console 접속:

INSERT 문
데이터를 생상(Create)할 때 어떤 SQL 쿼리가 동작하는지 확인해 보겠습니다

SELECT 문
데이터를 조회(Read)할 때 어떤 SQL 쿼리가 동작하는지 확인해 보겠습니다

UPDATE 문
데이터를 수정(UPDATE)할 때 어떤 SQL 쿼리가 동작하는지 확인해 보겠습니다

DELETE 문
데이터를 삭제(DELETE)할 때 어떤 SQL 쿼리가 동작하는지 확인해 보겠습니다

CREATE TABLE 테이블명 (
속성명1 자료형,
속성명2 자료형
속성명3 자료형,
PRIMARY KEY (기본키)
);

coffee 데이터 생성하기
//데이터 생성하기
****
INSERT
INTO
coffee
(id, name, price)
VALUES
(1, '아메리카노', 4100)

coffee 데이터 조회하기
// 데이터 조회하기
SELECT
id, name, price
FROM
coffee
WHERE
id = 3;
coffee 데이터 수정하기
UPDATE
coffee
SET
price = 9900
WHERE
id = 4;
coffee 데이터 삭제하기
DELETE
FROM
coffee
WHERE
id = 4;