구조

update-form.mustache
{{> layout/header}}
<section>
<form action="/store/{{id}}/update" method="POST">
<input type="text" value="바나나"><br>
<input type="text" value="100"><br>
<input type="text" value="3000"><br>
<button type="submit">상품수정</button>
</form>
</section>
</body>
</html>
detail.mustache
{{> layout/header}}
<section>
<a href="/store/{{id}}/update-form">수정화면가기</a>
<form action="/store/{{id}}/delete" method="POST">
<button type="submit">삭제</button>
</form>
<div>
번호 : 1 <br>
상품명 : 바나나 <br>
상품가격 : 3000원 <br>
상품재고 : 100개 <br>
</div>
<form action="#" method="POST">
<input type="hidden" value="1">
<input type="text" placeholder="당신은 누구인가요?">
<input type="text" placeholder="Enter 개수">
<button type="submit">구매</button>
</form>
</section>
</body>
</html>
save-form.mustache
{{> layout/header}} <section> <form action="/store/save" method="POST"> <input type="text" placeholder="상품명"><br> <input type="text" placeholder="수량"><br> <input type="text" placeholder="가격"><br> <button type="submit">상품등록</button> </form> </section> </body> </html>
header.mustache
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>blog</title>
</head>
<body>
<nav>
<ul>
<li>
<a href="/">상품 목록</a>
</li>
<li>
<a href="/store/save-form">상품 등록</a>
</li>
<li>
<a href="/log">구매 목록</a>
</li>
</ul>
</nav>
<hr>
list.mustache
{{>layout/header}}
<section>
<table border="1">
<tr>
<th>번호</th>
<th>상품명</th>
<th></th>
</tr>
<tr>
<td>1</td>
<td>바나나</td>
<td><a href="/store/1">상세보기</a></td>
</tr>
<tr>
<td>2</td>
<td>딸기</td>
<td><a href="/store/2">상세보기</a></td>
</tr>
</table>
</section>
</body>
</html>
Store.java
package com.metacoding.storev1.store;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Getter
@NoArgsConstructor // JPA가 ObjectMapping을 위해 new할 때 사용함. 무조건 붙여라
@Table(name = "store_tb")
@Entity // 설정파일에서 테이블을 생성 해준다.
public class Store {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private Integer stock; // 재고
private Integer price;
}
Log.java
package com.metacoding.storev1.log;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Getter
@NoArgsConstructor // JPA가 ObjectMapping을 위해 new할 때 사용함. 무조건 붙여라
@Table(name = "log_tb")
@Entity // 설정파일에서 테이블을 생성 해준다.
public class Log {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private Integer storeId; // 상품 ID (FK)
private Integer qty; // 구매 수량
private Integer totalPrice; // 총 구매 금액 qty * store(price)
private String buyer; // 구매자
}
Share article