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;
}
}

확인 클릭!


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