웹 개발/JSP

< JSP Oracle 연동하기 > 웹으로 DB 조회, 수정, 추가하기

지이구 2021. 6. 15. 09:20

이전 게시글에서 이클립스에서 Oracle을 사용할 수 있는 환경을 세팅했고

이번에는 Oracle 내의 DB를 접근하는 방법을 실습해보자

먼저 Oracle을 키고 연동 때 입력했던 계정으로 접속한다

connect username/password

간단한 테이블을 하나 생성해둔다

@경로\sinsang.sql;

(ex @c:\earth\sinsang.sql;)

이렇게 입력하면 쉽게 텍스트파일 안의 내용으로 테이블 생성가능

첨부파일

sinsang.sql
0.00MB

나는 sinsang 파일을 사용했다

(입문자들은 그대로 따라해도 무방!)

그리고 이클립스에서 Web Content 폴더 마우스 오른쪽 버튼 클릭 후 JSP 파일을 생성해준다

파일명은 selectSinsang.jsp 로 했다 (파일 생성 과정이 어렵다면 이전전 게시글 참고)

<%@page import="java.sql.DriverManager" %> //JSP에서 자바 코드를 사용하기 위해 <% %> 사용
<%@page import="java.sql.ResultSet" %> //필요한 라이브러리 import
<%@page import="java.sql.PreparedStatement" %>
<%@page import="java.sql.Connection" %>
<%@page import="java.sql.SQLException" %>
<%@page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%
	Connection conn = null;
	PreparedStatement pstmt = null;
	ResultSet rs = null;
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>신상명세서 출력 현황</title>
</head>
<body>
<center><h2>신상명세서 출력 현황</h2></center>
<table width="800" border="1" align="center">
<tr>
<th>사 번</th>
<th>학 과</th>
<th>국 어</th>
<th>영 어</th>
<th>전 산</th>
</tr>
<%
try{
	Class.forName("oracle.jdbc.driver.OracleDriver"); //driver
	conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "username", "password"); //username, password는 개인 Oracle 계정의 것으로 하면 됨
	String sql = "select * from sinsang"; //DB를 조회할 select문
	pstmt = conn.prepareStatement(sql); //sql문으로 conn
	rs = pstmt.executeQuery(); //pstmt 실행 후 결과를 rs에 할당
	
	while(rs.next()){ //조회되는 로우(행) 반복
		out.print("<tr>");
		out.print("<td>" + rs.getString("sabun") + "</td>"); //DB에서 sabun 컬럼에 해당하는 레코드 값을 불러옴
		out.print("<td>" + rs.getString("hakkwa") + "</td>");
		out.print("<td>" + rs.getInt("kor") + "</td>");
		out.print("<td>" + rs.getInt("eng") + "</td>");
		out.print("<td>" + rs.getInt("com") + "</td>");
		out.print("</tr>");
	}
	
	rs.close();
	pstmt.close();
	conn.close();
}catch(Exception e){
	e.printStackTrace();
}finally{
	try{
		if(rs!=null) rs.close();
		if(pstmt!=null) pstmt.close();
		if(conn!=null) conn.close();
	}catch(Exception e){
		e.printStackTrace();
	}
}
%>
</table>
</body>
</html>

<% %> 안의 부분은 모두 자바 코드라고 생각하면 되고 밖의 코드는 html 이라고 보면 된다!

 

//페이지 상에 출력되는 부분
<center><h2>신상명세서 출력 현황</h2></center>
<table width="800" border="1" align="center">
<tr>
<th>사 번</th>
<th>학 과</th>
<th>국 어</th>
<th>영 어</th>
<th>전 산</th>
</tr>

나머지는 DB와 연동하고 sql문을 이용하여 sinsang 테이블을 조회하는 것이다

이렇게 입력하고 Run 하면

이렇게 잘 출력이 된다

조회는 상대적으로 간단하다

이번에는 sinsang 테이블을 수정하는 실습을 해보자

일단 테이블을 수정하기 위해서는 수정 값을 입력해야하기 때문에

업데이트 입력 폼 jsp 파일과 업데이트를 수행하는 jsp 파일 이렇게 두 파일을 작성해야한다

sinsangFormUpdate.jsp //UI

updateSinsang.jsp //수행

먼저 UI부터 작성

출력예시

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>신상 정보 업데이트 폼</title>
</head>
<body>
<h2>신상정보 업데이트 입력 폼</h2>
<form action="updateSinsang.jsp" method="post"> //submit 됐을 때 실행할 jsp파일 연결
<table>
	<tr>
	<td>사 번</td>
	<td><input type="text" name="sabun" size="20"></td>
	</tr>
	<tr>
	<td>학 과</td>
	<td><input type="text" name="hakkwa" size="20"></td>
	</tr>
	<tr>
	<td>국 어</td>
	<td><input type="text" name="kor" size="20"></td>
	</tr>
	<tr>
	<td>영 어</td>
	<td><input type="text" name="eng" size="20"></td>
	</tr>
	<tr>
	<td>전 산</td>
	<td><input type="text" name="com" size="20"></td>
	</tr>
	<tr>
	<td><input type="submit" value="갱신 전송(Send)"></td>
	<td><input type="reset" value="갱신 취소(Cancel)"></td>
	</tr>
</table>
</form>
</body>
</html>

그리고 수행하는 자바스크립트 파일

<%@page import="java.sql.DriverManager" %>
<%@page import="java.sql.ResultSet" %>
<%@page import="java.sql.PreparedStatement" %>
<%@page import="java.sql.Connection" %>
<%@page import="java.sql.SQLException" %>
<%@page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>sinsang 테이블 업데이트</title>
</head>
<body>
<%
	request.setCharacterEncoding("utf-8");
	
	String sabun = request.getParameter("sabun");
	String hakkwa = request.getParameter("hakkwa");
	String kor = request.getParameter("kor");
	String eng = request.getParameter("eng");
	String com = request.getParameter("com");
	
	Connection conn = null;
	PreparedStatement pstmt = null;
	ResultSet rs = null;
	
	try{
		Class.forName("oracle.jdbc.driver.OracleDriver");
		conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "lee", "lee");
		
		String sql = "update sinsang set hakkwa=?, kor=?, eng=?, com=? where sabun=?";
		
		pstmt = conn.prepareStatement(sql);
		pstmt.setString(1, hakkwa);
		pstmt.setInt(2, Integer.parseInt(kor));
		pstmt.setInt(3, Integer.parseInt(eng));
		pstmt.setInt(4, Integer.parseInt(com));
		pstmt.setString(5, sabun);
		pstmt.executeUpdate();
	}catch(Exception e){
		e.printStackTrace();
	}finally{
		try{
			if(pstmt!=null) pstmt.close();
			if(conn!=null) conn.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
%>
<h3>수정이 완료되었습니다</h3><br>
<a href="selectSinsang.jsp">확인하기</a> //위에서 만든 select 파일을 활용하여 조회
</body>
</html>
[출처] < JSP Oracle 연동하기 > 웹으로 DB 조회, 수정, 추가하기|작성자 지구

UI에서 데이터를 수정할 사번을 입력하고 학과, 국어, 영어, 전산 점수를 설정하고 submit 해주면

이렇게 출력되고 확인하기를 누르면 select 파일로 수정된 테이블을 조회하여 확인할 수 있다

이번에는 새로운 데이터를 sinsang 테이블에 추가해보자

마찬가지로 입력할 UI 파일과 수행할 파일, 이렇게 두 개가 필요하다

sinsangForm.jsp //UI파일

insertIntoSinsang.jsp //수행할파일

먼저 UI 부터

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>신상정보 입력</title>
</head>
<body>
<h2>신상정보 입력 Form</h2>
<form action="insertIntoSinsang.jsp" method="post">
<table>
	<tr>
	<td>사 번</td>
	<td><input type="text" name="sabun" size="20"></td>
	</tr>
	<tr>
	<td>학 과</td>
	<td><input type="text" name="hakkwa" size="20"></td>
	</tr>
	<tr>
	<td>국 어</td>
	<td><input type="text" name="kor" size="20"></td>
	</tr>
	<tr>
	<td>영 어</td>
	<td><input type="text" name="eng" size="20"></td>
	</tr>
	<tr>
	<td>전 산</td>
	<td><input type="text" name="com" size="20"></td>
	</tr>
	<tr>
	<td><input type="submit" value="전송(Send)"></td>
	<td><input type="reset" value="취소(Cancel)"></td>
	</tr>
</table>
</form>
</body>
</html>

그리고 수행할 파일

 

<%@page import="java.sql.DriverManager" %>
<%@page import="java.sql.ResultSet" %>
<%@page import="java.sql.PreparedStatement" %>
<%@page import="java.sql.Connection" %>
<%@page import="java.sql.SQLException" %>
<%@page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>sinsang 테이블에 추가</title>
</head>
<body>
<%
	request.setCharacterEncoding("utf-8");
	
	String sabun = request.getParameter("sabun");
	String hakkwa = request.getParameter("hakkwa");
	String kor = request.getParameter("kor");
	String eng = request.getParameter("eng");
	String com = request.getParameter("com");
	
	Connection conn = null;
	PreparedStatement pstmt = null;
	String sql = "insert into sinsang(sabun, hakkwa, kor, eng, com) values(?, ?, ?, ?, ?)";
	
	try{
		Class.forName("oracle.jdbc.driver.OracleDriver");
		conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "lee", "lee");
		
		pstmt = conn.prepareStatement(sql);
		
		pstmt.setString(1, sabun);
		pstmt.setString(2, hakkwa);
		pstmt.setInt(3, Integer.parseInt(kor));
		pstmt.setInt(4, Integer.parseInt(eng));
		pstmt.setInt(5, Integer.parseInt(com));
		
		pstmt.executeUpdate();
		
	}catch(Exception e){
		e.printStackTrace();
	}finally{
		try{
			if(pstmt!=null) pstmt.close();
			if(conn!=null) conn.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
%>
<h3>입력이 완료되었습니다</h3>
<a href="selectSinsang.jsp">확인하기</a>
</body>
</html>

 

마찬가지로 입력이 완료되었는지 확인은! selectSinsang 파일로 가능하다

오라클의 SQL문을 조금이라도 배웠다면 아주 쉬운 실습일 듯!

배울수록 재밌는 JSP 장담하지...

 

 

 

 

원본 게시글은 주 블로그에 업로드되어있습니다

https://blog.naver.com/jisoo___/222154807293

 

< JSP Oracle 연동하기 > 웹으로 DB 조회, 수정, 추가하기

이전 게시글에서 이클립스에서 Oracle을 사용할 수 있는 환경을 세팅했고 이번에는 Oracle 내의 DB를 ...

blog.naver.com

 

728x90
반응형