2024. 6. 17. 14:05ㆍJSP+Spring Boot
Mapper.xml
mapper로 감쌀 SQL문은 mapper 안에 모두 작성하기
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace를 이용해서 java에 mapper sql 실행할 id를 작성할 java 파일위치 작성 -->
<!-- GoodsMapper에 goods테이블과 관련된 모든 id 작성 -->
<mapper namespace="com.example.demo.mapper.GoodsMapper">
<!-- sql에 값을 넣을 때 java에서 참조할 변수명 위치를 가져오기 위해
parameterType에 해당 변수명이 있는 위치 작성 -->
<!-- 작성한 id는 Mapper, Service, Controller에서 모든 메서드명으로 통일해서 작성 -->
<insert id="insertGoods" parameterType="com.example.demo.dto.Goods">
<!-- sql에 작성할 테이블 id, name, price, quantity -->
INSERT INTO goods (goods_id, goods_name, goods_price, goods_quantity)
<!-- #{dto.Goods에 적은 변수명}과 sql에 연결할 컬럼명 각각 작성하기 -->
VALUES(goods_seq.NEXTVAL,
#{goodsName},
#{goodsPrice},
#{goodsQuantity})
</insert>
</mapper>
----------------------------------------------------------------------------------------------------------
index
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>상품 등록하기</title>
</head>
<body>
<h1>상품 등록하기</h1>
<form th:action="@{/register}" method="post" th:object="${goods}">
<!-- goods_id 값은 db에서 nextValue로 자동으로 증가하게 설정했기 떄문에 form에서 작성 x -->
<!-- th:field="*{}" -> *는 th:object 값을 가져온다는 뜻 -->
상품명 : <input type="text" th:field="*{goodsName}"><br>
상품가격 : <input type="number" th:field="*{goodsPrice}"><br>
상품수량 : <input type="number" th:field="*{goodsQuantity}"><br>
<button>제출하기</button>
</form>
</body>
</html>
Controller에서 model.addAttribute("goods", new Goods()); :: html에 goods라는 이름으로 전달한다고 작성했기 때문에 th:object="${goods}"를 이용해 나머지 input에는 goods를 사용하지 않고 바로 dto에 작성한 변수명을 써주면 됨
만약 th:object="${goods}"를 써주지 않으면 goods.goodsName 식으로 적어주면 됨
input에 있는 값을 dto에 있는 변수명에 넣어주기 때문에, th:field 라는 이름을 써서 일치하는 필드명(=변수명)에 고객이 작성한 값을 넣어주겠단 표기
-------------------------------------------------------------------------------------------------------------
registerSuccess
등록이 성공적으로 되면 나타날 페이지 작성
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>상품 등록 완료</title>
</head>
<body>
<h1 th:text="${msg}"></h1>
</body>
</html>
----------------------------------------------------------------------------------------------------------------
'JSP+Spring Boot' 카테고리의 다른 글
과자와 회사 정보 모두 가져오기 + 과자 하나 상세보기(join) (resources) (0) | 2024.06.20 |
---|---|
DB 테이블에 있는 값 불러오기(select) (0) | 2024.06.20 |
상품등록 폼 만들기(Java 파일)(insert) (0) | 2024.06.17 |
Thymeleaf(inline, classappend), sequence (0) | 2024.06.14 |
Thymeleaf(switch, case) (0) | 2024.06.14 |