<%@ 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" %>
<%@page import="java.sql.ResultSet"%>
<%
String currentPage = request.getParameter("currentPage");
// 유요성 코드 추가 -> 분기 -> return
if (currentPage == null
|| request.getParameter("storeNo") == null
|| currentPage.equals("")
|| request.getParameter("storeNo").equals("")){
response.sendRedirect("./storeList.jsp");
return;
}
int storeNo = Integer.parseInt(request.getParameter("storeNo"));
Class.forName("org.mariadb.jdbc.Driver");
java.sql.Connection conn = DriverManager.getConnection(
"jdbc:mariadb://127.0.0.1:3306/homework0419", "root", "java1234");
String sql = "select store_no, store_name, store_category, store_address, store_emp_cnt, store_begine, createdate, updatedate from store where store_no = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setInt(1, storeNo); //stmt의 1번째 ?를 storeNo로 바꾸겠다.
System.out.println(stmt + " <-- stmt");
ResultSet rs = stmt.executeQuery();
rs.next();
%>
<!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>
<!-- currentPage를 넣은 이유는 action으로 넘어갈때 currentPage 값을 주기 위함 -->
<form action="./updateStoreAction.jsp?currentPage=<%=currentPage%>" method="post">
<table>
<tr>
<td>
store_no
</td>
<td>
<input type="number" name="storeNo"
value="<%=rs.getInt("store_no")%>" readonly="readonly">
</td>
</tr>
<tr>
<td>
store_pw
</td>
<td>
<input type="password" name="storePw">
</td>
</tr>
<tr>
<td>
store_name
</td>
<td>
<input type="text" name="storeName"
value="<%=rs.getString("store_name")%>">
</td>
</tr>
<tr>
<td>
store_category
</td>
<td>
<!-- 입력된 값에 따라 select 분기 -->
<select name="storeCategory">
<%
if (rs.getString("store_category").equals("일식") ){
%>
<option value="<%=rs.getString("store_category")%>"><%=rs.getString("store_category")%></option>
<option value="한식">한식</option>
<option value="중식">중식</option>
<%
} else if (rs.getString("store_category").equals("중식")){
%>
<option value="<%=rs.getString("store_category")%>"><%=rs.getString("store_category")%></option>
<option value="한식">한식</option>
<option value="일식">중식</option>
<%
} else if (rs.getString("store_category").equals("한식")){
%>
<option value="<%=rs.getString("store_category")%>"><%=rs.getString("store_category")%></option>
<option value="일식">일식</option>
<option value="중식">중식</option>
<%
}
%>
</select>
</td>
</tr>
<tr>
<td>
store_address
</td>
<td>
<textarea rows="2" cols="80" name="storeAddress"><%=rs.getString("store_address")%></textarea>
</td>
</tr>
<tr>
<td>
store_emp_cnt
</td>
<td>
<input type="number" name="storeEmpCnt"
value="<%=rs.getInt("store_emp_cnt")%>">
</td>
</tr>
<tr>
<td>
store_begine
</td>
<td>
<!-- date value에 날짜 값넣으면 기본으로 뜸 -->
<input type="date" name="storeBegine"
value="<%=rs.getString("store_begine")%>">
</td>
</tr>
</table>
<div>
<button type="submit">수정</button>
</div>
</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" %>
<%
request.setCharacterEncoding("utf-8");
// 요청값 유효성 검사
if(request.getParameter("storeName") == null
|| request.getParameter("storeName").equals("")) {
response.sendRedirect("./updateStoreForm.jsp");
return;
}
int storeNo = Integer.parseInt(request.getParameter("storeNo"));
String storePw = request.getParameter("storePw");
String storeName = request.getParameter("storeName");
String storeCategory = request.getParameter("storeCategory");
String storeAddress = request.getParameter("storeAddress");
int storeEmpCnt = Integer.parseInt(request.getParameter("storeEmpCnt"));
String storeBegine = request.getParameter("storeBegine");
int currentPage = Integer.parseInt(request.getParameter("currentPage"));
Class.forName("org.mariadb.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mariadb://127.0.0.1:3306/homework0419","root","java1234");
String sql = "update store set store_name=?, store_category=?, store_address=?, store_emp_cnt=?, store_begine=?, updatedate=now() where store_no=? and store_pw=?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, storeName);
stmt.setString(2, storeCategory);
stmt.setString(3, storeAddress);
stmt.setInt(4, storeEmpCnt);
stmt.setString(5, storeBegine);
stmt.setInt(6, storeNo);
stmt.setString(7, storePw);
System.out.println(stmt + " <-- updateStoreAction sql");
int row = stmt.executeUpdate();
// 디버깅
System.out.println(row + " <-- updateStoreAction row");
// 수정 안하고 넘길시 updateStoreForm에 남게함
if(row == 0) { // 비빌번호 틀려서 삭제행이 0행
response.sendRedirect("./updateStoreForm.jsp?storeNo=" + storeNo + "¤tPage=" + currentPage);
} else {
response.sendRedirect("./storeOne.jsp?storeNo=" + storeNo + "¤tPage=" + currentPage);
}
%>