이전 게시글에서 이클립스에서 Oracle을 사용할 수 있는 환경을 세팅했고
이번에는 Oracle 내의 DB를 접근하는 방법을 실습해보자
먼저 Oracle을 키고 연동 때 입력했던 계정으로 접속한다
connect username/password
간단한 테이블을 하나 생성해둔다
@경로\sinsang.sql;
(ex @c:\earth\sinsang.sql;)
이렇게 입력하면 쉽게 텍스트파일 안의 내용으로 테이블 생성가능
첨부파일
나는 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