[구디아카데미] [IT국비지원] 3주차 정리 3. 웹에서 db로 새로운 데이터 입력

띵거니·2023년 4월 21일
0

insert query 문을 이용해서 새로운 데이터 입력


데이터 입력

데이터 입력 완료

데이터 입력 페이지 코드

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
	String currentPage = request.getParameter("currentPage");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>insertNoticeForm</title>
</head>
<body>
	<div>
		<h1>
			<a href="./storeList.jsp?currentPage=<%=currentPage%>">맛집 리스트</a>
		</h1>
	</div>
	<h1>맛집 입력</h1>
	<form action="./insertStoreAction.jsp" method="post">
		<table>
			<tr>
				<td>
					store_name
				</td>
				<td>
					<input type="text" name="storeName">
				</td>
			</tr>
			<tr>
				<td>
					store_category
				</td>
				<td>
					<select name="storeCategory">
						<option value="한식">한식</option>
						<option value="일식">일식</option>
						<option value="중식">중식</option>
					</select>
				</td>
			</tr>
			<tr>
				<td>
					store_address
				</td>
				<td>
					<textarea rows="2" cols="80" name="storeAddress"></textarea>	
				</td>
			</tr>
			<tr>
				<td>
					store_emp_cnt
				</td>
				<td>
					<input type="number" name="storeEmpCnt">
				</td>
			</tr>
			<tr>
				<td>
					store_begine
				</td>
				<td>
					<input type="date" name="storeBegine">
				</td>
			</tr>
			<tr>
				<td>
					store_pw
				</td>
				<td>
					<input type="password" name="storePw">
				</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" %>
<%
	//post방식 인코딩 처리
	request.setCharacterEncoding("utf-8"); 

	// validation(요청 파라미터값 유효성 검사)
	if(request.getParameter("storeName") == null 
			|| request.getParameter("storePw") == null
			|| request.getParameter("storeName").equals("")
			|| request.getParameter("storePw").equals("")) {
		response.sendRedirect("./insertStoreForm.jsp");
		return;
	}
	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");
	String storePw = request.getParameter("storePw");

	Class.forName("org.mariadb.jdbc.Driver");
	Connection conn = DriverManager.getConnection(
			"jdbc:mariadb://127.0.0.1:3306/homework0419","root","java1234");
	
	String sql = "insert into store(store_name, store_category, store_address, store_emp_cnt, store_begine, store_pw, createdate, updatedate) values(?,?,?,?,?,?,now(),now())";
	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.setString(6, storePw);
	
    // select를 제외한 query문을 사용할때 excuteUpdate()를 사용 int값으로 return값이 나온다.
	int row = stmt.executeUpdate();
	// 디버깅
	System.out.println(row + "<-- row");
	// conn.commit(); // conn.setAutoCommit(true); 디폴트 값이 true라 자동커밋 -> commit생략 가능
	
	// redirection
	response.sendRedirect("./storeList.jsp");
%>
profile
발효 중인 국비생

0개의 댓글