JSP

[JSP] Dynamic Web Project에서 Oracle DB 연동하고 update 쿼리 날리기

colin2 2024. 4. 17. 10:07

 

2024.04.12 - [JSP] - [JSP] Dynamic Web Project에서 Oracle DB 연동하고 insert, delete 쿼리 날리기

 

update 역시 select와 다르게 수정한 값을 보내주기만 하면 되기 때문에 ResultSet이 없다.

 

update만 따로 정리하는 이유는, 수정하기 위해 기존 레코드를 가지고 와서 그 값을 수정해 주어야 하기 때문이다.

 

하여 select * from 테이블명 where sno = sno; 와 같이 레코드를 한 번 출력해 주고, 그 상태에서 update를 해야 한다는 것이다.

 

edit.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="dbconn.jsp" %>
<%
String sno = request.getParameter("sno");

String sql = "select * from examtbl where sno = " + sno;
PreparedStatement pstmt = con.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
rs.next();
%>

<body>
	<div align="center">
		<h2>성적상세보기 ( <a href="index.jsp">처음으로</a> )</h2><br>
		<form action="update.jsp">
			<table border=1>
				<tr>
					<td>학번</td>
					<td><input type=text name=sno value=<%=sno %>></td>
				</tr>
				<tr>
					<td>이름</td>		
					<td><input type=text name=sname value='<%=rs.getString("sname") %>'></td>
				</tr>
				<tr>
					<td>국어</td>
					<td><input type=text name=kor value='<%=rs.getString("kor") %>'></td>
				</tr>
				<tr>
					<td>영어</td>
					<td><input type=text name=eng value='<%=rs.getString("eng") %>'></td>
				</tr>
				<tr>
					<td>수학</td>
					<td><input type=text name=math value='<%=rs.getString("math") %>'></td>
				</tr>
				<tr>
					<td>역사</td>
					<td><input type=text name=hist value='<%=rs.getString("hist") %>'></td>
				</tr>
				<tr align=center>
					<td colspan=2><input type=submit value="수정하기"></td>
				</tr>
			</table>
		</form>
	</div>
</body>
 

list.jsp 파일에서 학번을 클릭하면 해당 레코드의 학번과 함께 edit.jsp 파일로 이동하게 된다.

 

select 쿼리를 사용해야 하기 때문에 excuteQuery();를 사용했고, 여기에서 나온 레코드를 ResultSet 에 담아주었다.

 

레코드가 여러개가 아니라 하나이기 때문에 while문은 사용하지 않고, rs.next()로 데이터를 읽을 수 있는 상태만 만들어 준다.

 

input value에 결과값을 뿌려주면 수정 값 가져오기 완료.

 

update.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="dbconn.jsp" %>

<!doctype html>
<html>
<head>
<meta charset="UTF-8"> <title>DB 연동</title>
</head>
<body>
<hr>
<%
String sno = request.getParameter("sno");
String sname = request.getParameter("sname");
String kor = request.getParameter("kor");
String eng = request.getParameter("eng");
String math = request.getParameter("math");
String hist = request.getParameter("hist");

String sql = "update examtbl set sname = '"+ sname +"', kor = "+ kor ;
		sql = sql +", eng = " + eng +", math = "+ math +", hist = "+ hist ; 
		sql = sql + " where sno = " + sno;
out.println("sql: " + sql);

PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.executeUpdate();

pstmt.close();
con.close();

response.sendRedirect("list.jsp");
%>

<h2>수정완료!!</h2>
</body>
</html>
 

 

수정하기 버튼을 클릭하면 update.jsp 파일로 이동할 것이고, 파라미터로 넘어온 값들을 받아 update 쿼리로 수정해 준다.

 

response.sendRedirect("list.jsp");를 통해 list.jsp 파일로 바로 이동.

 

list.jsp

 

이렇게 수정이 된 레코드를 확인할 수 있다.

 

여기까지 Dynamic Web Project 에서 오라클 DB를 연동하여 기본 CRUD 작업을 진행해 보았다.