[구디아카데미] [IT국비지원] 3주차 정리 4. 웹에서 데이터 삭제

띵거니·2023년 4월 21일
0

delete를 활용한 데이터 삭제


데이터 삭제 페이지 코드

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
	// 요청값 유효성 검사
	if(request.getParameter("storeNo") == null) {
		response.sendRedirect("./storeList.jsp");
		return;
	}
	
	int storeNo = Integer.parseInt(request.getParameter("storeNo"));
	System.out.println(storeNo + " <-- deleteStoreForm param storeNo");
	
	int currentPage = Integer.parseInt(request.getParameter("currentPage"));
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div>
		<h2>
			<a href="./storeList.jsp?currentPage=<%=currentPage%>">맛집 리스트</a>
		</h2>
	</div>
	<h1>맛집 삭제</h1>
    // form action을 이용해서 submit 하면 페이지 넘어가게 설정
	<form action="./deleteStoreAction.jsp?currentPage=<%=currentPage%>" method="post">
		<table>
			<tr>
				<td>store_no</td>
				<td>
					<input type="text" name="storeNo" value="<%=storeNo%>" readonly="readonly">
				</td>
			</tr>
			<tr>
				<td>store_pw</td>
				<td>
					<input type="password" name="storePw">
				</td>
			</tr>
			<tr>
				<td colspan="2">
					<button type="submit">삭제</button>
				</td>
			</tr>
		</table>
	</form>
</body>
</html>

데이터 삭제 실행 코드

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import = "java.sql.Connection" %>
<%@ page import = "java.sql.DriverManager" %>
<%@ page import = "java.sql.PreparedStatement" %>
<%
	// 요청값 유효성 검사
	if(request.getParameter("storeNo") == null
			|| request.getParameter("storePw") == null
			|| request.getParameter("storeNo").equals("")
			|| request.getParameter("storePw").equals("")) {
		response.sendRedirect("./storeList.jsp");
		return;
	}
	
	int storeNo = Integer.parseInt(request.getParameter("storeNo"));
	String storePw = request.getParameter("storePw");
	int currentPage = Integer.parseInt(request.getParameter("currentPage"));
	
	// 디버깅
	System.out.println(storeNo + " <-- deletestoreAction param storeNo");
	System.out.println(storePw + " <-- deletestoreAction param storePw");
	
	// delete from notcie where store_no=? and store_pw=?
	Class.forName("org.mariadb.jdbc.Driver");
	Connection conn = DriverManager.getConnection(
			"jdbc:mariadb://127.0.0.1:3306/homework0419","root","java1234");
	String sql = "delete from store where store_no=? and store_pw=?";
	PreparedStatement stmt = conn.prepareStatement(sql);
	stmt.setInt(1, storeNo);
	stmt.setString(2, storePw);
	System.out.println(stmt + " <-- deletestoreAction sql");

	int row = stmt.executeUpdate();
	// 디버깅
	System.out.println(row + " <-- deletestoreAction row");
	
	if(row == 0) { // 비빌번호 틀려서 삭제행이 0행이기 때문에 row값은 0
    	// 삭제되지 않고 페이지에 그대로 남음
		response.sendRedirect("./deleteStoreForm.jsp?storeNo="+storeNo + "&currentPage=" + currentPage);
	} else {
		response.sendRedirect("./storeList.jsp?currentPage=" + currentPage);
	}
%>
profile
발효 중인 국비생

0개의 댓글

Powered by GraphCDN, the GraphQL CDN