2024.04.09 - [JSP] - [JSP] Dynamic Web Project에 Oracle DB 연동하고 select 쿼리 날리기
기본 CRUD 쿼리는 select와 select가 아닌 것으로 구분해서 보면 편하다.
하여 이번에는 select가 아닌 insert, delete 쿼리에 대해서 정리해 보자.
어느 파일이든 DB에 접근하기 위해서는 꼭 사용되는 코드가 있는데, 중복되어 사용되는 것을 막기 위해 dbconn.jsp 라는 파일을 하나 만들어 DB 연동 코드를 넣어주고, 다른 페이지들에서는 이 파일을 import 해서 사용하도록 할 것이다.
dbconn.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%
String url = "jdbc:oracle:thin:@//localhost:1521/xe";
String uid = "system";
String pwd = "1234";
Class.forName("oracle.jdbc.OracleDriver");
Connection con = DriverManager.getConnection(url, uid, pwd);
%>
이렇게 필요할 때 import 할 수 있는 jsp 파일이 완성 되었다.
먼저 insert를 해볼텐데, 정보를 받기 위한 form.jsp 파일을 먼저 생성해 준다.
(form.jsp에서는 사용자로부터 정보를 받기만 할 것이기 때문에 DB에 연결할 필요가 없다)
form.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align="center">
<h2>성적입력 ( <a href="index.jsp">처음으로</a> )</h2><br>
<form action="insert.jsp">
<table border=1>
<tr>
<td>학번</td>
<td><input type=text name=sno></td>
</tr>
<tr>
<td>이름</td>
<td><input type=text name=sname></td>
</tr>
<tr>
<td>국어</td>
<td><input type=text name=kor></td>
</tr>
<tr>
<td>영어</td>
<td><input type=text name=eng></td>
</tr>
<tr>
<td>수학</td>
<td><input type=text name=math></td>
</tr>
<tr>
<td>역사</td>
<td><input type=text name=hist></td>
</tr>
<tr align=center>
<td colspan=2><input type=submit value="보내기"></td>
</tr>
</table>
</form>
</div>
</body>
</html>
input에 name을 주어 입력받은 값을 전달해 줄 것이다.
insert.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>
<h3> Data base 연동 샘플</h3>
<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 = "insert into examtbl (sno, sname, kor, eng, math, hist) ";
sql = sql + " values ("+ sno +", '"+ sname +"', "+ kor +", "+ eng +", "+ math +", "+ hist +")";
out.println("sql: " + sql);
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.executeUpdate();
pstmt.close();
con.close();
response.sendRedirect("list.jsp");
%>
<h2>저장완료!!</h2>
</body>
</html>
insert.jsp에서는 DB로 값을 보내야 하기 때문에 dbconn.jsp 파일을 import 해준다.
select를 제외한 쿼리는 값을 불러오는 게 아니기 때문에 ResultSet이 없고, excuteUpdate()를 사용한다.
response.sendRedirect("list.jsp"); 가 있기 때문에 저장이 완료되면 바로 list.jsp 파일로 이동하게 된다.
list.jsp


그러면 저장한 레코드가 잘 들어간 것을 볼 수 있다.
delete.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 sql = "delete from examtbl 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>
list.jsp에 있는 삭제 버튼을 누르면 sno 값을 함께 넘겨줄 것이고, 파라미터로 해당 레코드의 sno를 받아와 그 레코드를 삭제한다.
역시나 response.sendRedirect("list.jsp"); 가 있기 때문에 삭제 후에는 바로 list.jsp 파일로 이동한다.
list.jsp

이렇게 insert와 delete 쿼리까지 사용해 보았고, 마지막으로 update 쿼리를 사용하여 수정만 해주면 기본 CRUD가 완성이 된다.
'JSP' 카테고리의 다른 글
[JSP] 검색 기능 구현 | Dynamic Web Project (0) | 2024.04.22 |
---|---|
[JSP] Dynamic Web Project에서 Oracle DB 연동하고 update 쿼리 날리기 (0) | 2024.04.17 |
[JSP] Dynamic Web Project에 Oracle DB 연동하고 select 쿼리 날리기 (0) | 2024.04.09 |
[JSP의 시작] Dynamic Web Project 환경 설정 후 Hello 찍기 (0) | 2024.04.04 |
CRUD 게시판 _조회수 카운트 추가하기 (0) | 2024.01.08 |