JSP Servlet 기초(11) JDBC

이번 글 은 JDBC 에 대해 알아보겠습니다


JAVA 프로그램에서 SQL문을 실행하여 데이터를

관리하기 위한 JAVA API 입니다


JDBC의 특징은 다양한 데이터베이스에 대해서

별도의 프로그램을 만들 필요 없이 해당 데이터 베이스의

JDBC 를 이용하면 하나의 프로그램으로 데이터 베이스를

관리하실수 있습니다.

저는 오라클을 사용하므로 오라클용 JDBC를 사용하며

이것은 오라클을 설치하면 자동으로 설치되고 

이클립스에서 해당 클래스 파일을 복사하면 됩니다.


 먼저 오라클 드라이버를 사용하기 위한 jdbc.jar 파일을 

복사하셔야 합니다

jar 파일은 오라클 폴더 안에있습니다

(저는 아래 경로에 있습니다.)


C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib


ojdbc6_g 파일을 복사하여


C:\Program Files\Java\jre1.8.0_161\lib\ext

위 경로에 붙여넣기 합니다


이렇게 JDBC 설치는 끝났습니다 오라클에

있는 jar파일(라이브러리)만 복사 붙여넣기 

하시면 됩니다.


데이터 베이스 연결 순서 알아보겠습니다.



Statement 객체 알아보겠습니다



이제 직접 jsp 파일을 만들어 실행해 보겠습니다

먼저 jsp 파일을 하나 만들어줍니다

저는 userData.jsp 라고 만들었습니다.

 오라클 developer 포스팅때 생성했던

scott 계정에 test 테이블에서 

데이터를 뽑아 오겠습니다


먼저 jsp 파일을 아래와 같이 만들어줍니다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>   
    <%!
        Connection connection;
        Statement statement;
        ResultSet resultSet;
    
        String driver = "oracle.jdbc.driver.OracleDriver";
        String url = "jdbc:oracle:thin:@localhost:1521:xe";
        String uid = "scott";
        String upw = "tiger";
        String query = "select * from test";
   %>    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
        try{
            
            Class.forName(driver);    //oracle.jdbc.driver.OracleDriver
            connection = DriverManager.getConnection(url, uid, upw);    //jdbc:oracle:thin:@localhost:1521:xe
            statement = connection.createStatement();
            resultSet = statement.executeQuery(query);    //select * from member
            
            while(resultSet.next()){
                String name = resultSet.getString("name");
                String id = resultSet.getString("id");
                
                out.println("이름 : " + name + ", 아이디 : " + id + "<br />");
            }
            
        } catch(Exception e) {
        } finally {
            try{
                if(resultSet != null) resultSet.close();
                if(statement != null) statement.close();
                if(connection != null) connection.close();
            } catch(Exception e){}
        }
   %>
</body>
</html>
cs


먼저 9,10,11line 에서는 Connection, Statement, 

ResultSet 객체 사용을위해 레퍼런스 변수를

선언했습니다.


다음 13~17line 에서는 데이터베이스

연결을 위해 JDBC드라이버를 로드합니다


27line 은 예외처리문으로 db와 관련된것은 예외

상황이 발생 할수 있기때문에 try catch 문을 사용합니다


29line은 드라이버로드 한겁니다

30~32line 은 9~11line에서 선언했던 객체를 

사용합니다.


다음 34line부터는 17line 에서 db에서 select를 이용해

뽑아온 데이터를 반복문을 통해 화면에 출력시켜줍니다


17line에서 select 문으로 뽑아온 데이터들은 

resultSet에 담겨집니다

그래서 resultSet.getString("name"); 으로

데이터를 뽑아와 String name 에 저장합니다


34line 에 resultSet.next()

는 resultSet에서 다음레코드로 이동시켜줍니다

즉 현재 db에 뽑아올 다음 데이터가 있는지 사용하는겁니다

true,false 를 반환합니다

false를 반환하게 되면 다음 데이터가 없는것으로 판단되어

while 문을 빠져나오게 됩니다.


44~46line 은 자원 해제 입니다 위에서 생성했던

객체순서의 역순으로 차례대로 해제시켜줍니다.


이제 jsp 파일을 실행시켜보면



데이터가 정상적으로 출력되는것을 확인할수

있습니다.

댓글

Designed by JB FACTORY