JSP_11강_4_미니쇼핑몰_관리자 페이지_카테고리 삭제, 제품 수정

열라뽕따히·2024년 4월 8일

JSP

목록 보기
40/43

admin_category_list.jsp

mapping.properties에 admin_category_delete.go 작성

action 패키지에 AdminCategoryDeleteAction 클래스 생성


=============================코드=============================

package com.admin.action;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.shop.controller.Action;
import com.shop.controller.ActionForward;
import com.shop.model.CategoryDAO;

public class AdminCategoryDeleteAction implements Action {

	@Override
	public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws IOException {
		// get 방식으로 넘어온 카테고리 번호에 해당하는 카테고리를 
		// shop category 테이블에서 삭제하는 비지니스 로직
		int category_no = Integer.parseInt(request.getParameter("cnum").trim());
		
		CategoryDAO dao = CategoryDAO.getInstance();
		dao.deleteCategory(category_no);
		
		return null;
	}

}



CategoryDAO에 deleteCategory() 메서드 생성


=============================코드=============================

// 카테고리 번호에 해당하는 카테고리를 테이블에서 삭제하는 메서드
	public int deleteCategory(int no) {
		int result = 0;
		
		try {
			openConn();
			
			sql = "delete from shop_category where category_num = ?";
			pstmt = con.prepareStatement(sql);
			pstmt.setInt(1, no);
			
			result = pstmt.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			closeConn(pstmt, con);
		}
		return result;
	}



다시 deleteCategory() 메서드로 가자


=============================코드=============================

package com.admin.action;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.shop.controller.Action;
import com.shop.controller.ActionForward;
import com.shop.model.CategoryDAO;

public class AdminCategoryDeleteAction implements Action {

	@Override
	public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws IOException {
		// get 방식으로 넘어온 카테고리 번호에 해당하는 카테고리를 
		// shop category 테이블에서 삭제하는 비지니스 로직
		int category_no = Integer.parseInt(request.getParameter("cnum").trim());
		
		CategoryDAO dao = CategoryDAO.getInstance();
// ------------------여기서부터 작성------------------
		int check = dao.deleteCategory(category_no);
		
		PrintWriter out = response.getWriter();
		if(check > 0) {
			dao.updateSequence(category_no);
			
		}
		
		return null;
	}

}



CategoryDAO에 updateSequence() 메서드 생성


=============================코드=============================

// 카테고리 코드 삭제 시 카테고리 번호 재작업하는 메서드
	public void updateSequence(int no) {
		
		try {
			openConn();
			
			sql = "update shop_category set category_num = category_num -1 where category_num > ?";
			pstmt = con.prepareStatement(sql);
			pstmt.setInt(1, no);
			
			pstmt.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			closeConn(pstmt, con);
		}
	}



deleteCategory() 메서드로 가자


=============================코드=============================

package com.admin.action;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.shop.controller.Action;
import com.shop.controller.ActionForward;
import com.shop.model.CategoryDAO;

public class AdminCategoryDeleteAction implements Action {

	@Override
	public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws IOException {
		// get 방식으로 넘어온 카테고리 번호에 해당하는 카테고리를 
		// shop category 테이블에서 삭제하는 비지니스 로직
		int category_no = Integer.parseInt(request.getParameter("cnum").trim());
		
		CategoryDAO dao = CategoryDAO.getInstance();
		int check = dao.deleteCategory(category_no);
		
		PrintWriter out = response.getWriter();
		if(check > 0) {
// ------------------여기서부터 작성------------------
			dao.updateSequence(category_no);  // 삭제가 되었는지 확인을 한 후 번호 재정렬을 하는 것이 좋음!
			
			out.println("<script>");
			out.println("alert('카테고리 코드 삭제 성공!!')");
			out.println("location.href='admin_category_list.go'");
			out.println("</script>");
		}else {
			out.println("<script>");
			out.println("alert('카테고리 코드 삭제 실패...')");
			out.println("history.back()");
			out.println("</script>");
		}
		
		return null;
	}

}

=============================실행=============================

확인 클릭!

코드가 삭제된 것을 확인할 수 있음!

0개의 댓글