Mybatis-Myshop-장바구니(insert,list,delete)

임재헌·2023년 5월 23일

Mybatis

목록 보기
5/6

상세보기 페이지에서 제품 수량을 선택하고 구매하기 버튼을 누르면
장바구니페이지로 이동

구매하기
view

<tr>
		<td>상품수량</td>
		<td>
		 <select name="qty" id="qty">
		 <option value="0">#선택#</option>
		 <option value="1">1</option>
		 <option value="2">2</option>
		 <option value="3">3</option>
		 <option value="4">4</option>
		 <option value="5">5</option>
		</select>
		 </td>
		</tr>
<script>
function product_cart() {
    if ($("#qty").val()=="0") {
        alert("수량을 선택하세요");
    }else{
        document.productfrm.action="/cart/insert";
        document.productfrm.submit();
    }
}
</script>

mapper

<insert id="insert" parameterType="kr.co.itwill.cart.CartDTO">
insert into cart(cartno,product_code,price,qty,id)
values(cart_seq.nextval,#{product_code},#{price},#{qty},#{id})
</insert>

DAO

	public int CartInsert(CartDTO dto) {
		return sqlSession.insert("cart.insert", dto);
	}

CONTROLLER

@RequestMapping("/insert")
	public String Cartinsert(@ModelAttribute CartDTO dto, HttpSession session)throws Exception {
		//로그인 기능을 구현했다면 session.getAttribute()
		//dto.setId(session.getAttribute("s_id"))
		dto.setId("test");
		//System.out.println(dto.toString());
		
		cartDao.CartInsert(dto);
		return "redirect:/cart/list";
	}


장바구니 목록 페이지

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>list</title>
<link href="../css/main.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<h3>장바구니 목록</h3>
<br>
<table border="1" class="table">
<tr class="info">
<th>아이디</th>
<th>번호</th>
<th>상품코드</th>
<th>상품단가</th>
<th>상품수량</th>
<th>총 가격</th>

</tr>

<c:forEach var="row" items="${list}">
<tr>
<td>${row.id}</td>
<td>${row.cartno}</td>
<td>${row.product_code}</td>
<td>${row.price}</td>
<td>${row.qty }</td>
<td>${row.price*row.qty}</td>
cartno=${row.cartno}'"> </td>
</tr>

</c:forEach>
</table>
<br>

<input type="button" value="계속 쇼핑하기" onclick="location.href='/product/list'" class="btn btn-primary">

DAO

public List<CartDTO> list(String id) {
		return sqlSession.selectList("cart.list",id);
	}

MAPPER

<select id="list" parameterType="String" resultType="kr.co.itwill.cart.CartDTO">
<![CDATA[
select *
from cart
where id=#{id} 
order by cartno
]]>
</select>

CONTROLLER


	@RequestMapping("/list")
	public ModelAndView list(HttpSession session) {
		//로그인시 String s_id=session.getAttribute("s_id")
		String s_id="test";
		ModelAndView mav=new ModelAndView();
		mav.setViewName("cart/list");
		mav.addObject("list",cartDao.list(s_id));
		return mav;
	}


장바구니 삭제

DAO

public int cartDelete(HashMap<String, Object> map) {
		return sqlSession.delete("cart.delete",map);
	}
	

MAPPER

<delete id="delete" parameterType="java.util.HashMap">
delete from cart
where cartno=#{cartno} and id=#{s_id}
</delete>

CONTROLLER

	
@RequestMapping("/delete")
	public String delete(int cartno,HttpSession session) {
	//dto에 없는 값은 map으로 넘긴다
	HashMap<String, Object> map=new HashMap<>();
		map.put("cartno", cartno);
		map.put("s_id","test");
		cartDao.cartDelete(map);
		return "redirect:/cart/list";
	}
	

0개의 댓글