상세 컨텐츠

본문 제목

JDBC 연동 후 DB 테스트

WebProgramming/JSP

by ChrisMare 2018. 10. 22. 18:38

본문

데이터 베이스 연결 순서

1. ojdbc-version.jar 파일을 먼저 WEB-INFO > lib 폴더에 먼저 삽입합니다.

2. 그 후 연결 및 실행 과정입니다.



Statement 객체



executeQuery() 실행 후 반환 되는 레코드

Example executeQuery Test )

1. Member.db 생성

2. select.jsp

db 와 관련된 구문은 예외가 발생할 수 있기 때문에 try catch를 통해서 구현해야되며 finally로 자원해제까지 해주어야됩니다.


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
52
53
54
55
56
57
58
59
60
61
62
63
64
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
    <%!
        //DB 접속에 사용할 Conn 변수
        Connection connection = null;
        //SQL문 실행을 위한 객체
        Statement statement = null;
        //SQL문 실행 후 반환될 객체
        ResultSet resultSet = null;
        //오라클 드라이버 경로 설정        
        String driver = "oracle.jdbc.driver.OracleDriver";
        // 자신의 DB의 계정 경로 설정
        String url = "jdbc:oracle:thin:@localhost:1521:xe";
        // DB 사용자 아이디 및 비번
        String userId = "scott";
        String userPw = "1234";
        // SQL문 명령 쿼리
        String query = "select * from member";
    %>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>JDBC Test</title>
</head>
<body>
<h1>JDBC Test</h1>
<hr>
<%
    //DB와 관련된 것은 실패할 수 있으므로 try catch 문 안에 쓰며 finally문으로 자원해제까지 해줘야된다.
    try{
//드라이버 로드
        Class.forName(driver);
//드라이버매니저로 부터 connection 객체에 연결
        connection = DriverManager.getConnection(url, userId, userPw);
//connection을 통해서 쿼리실행을 위해 statement를 생성한다.
        statement = connection.createStatement();
//생성된 statement에 쿼리문을 실행시킨 후 반환된 데이터를 resultSet에 담습니다.
        resultSet = statement.executeQuery(query);

        
        while(resultSet.next()){
            String id = resultSet.getString("id");
            String pw = resultSet.getString("pw");
            String name = resultSet.getString("name");
            int age = resultSet.getInt("age");
            
            out.println("ID : " + id + ", PW : " + pw + ", Name : " + name + ", Age : " + age + "<br/>");
            
        }
        
    }catch(Exception e){
        e.printStackTrace();
    } finally {
//자원해제
        try{
            if(resultSet != null) resultSet.close();    
            if(statement != null) statement.close();
            if(connection != null) connection.close();
        }catch(Exception e2){
            e2.printStackTrace();
        }
    }
%>
</body>
</html>

cs

결과 )

executeUpdate() 실행 후 변경 되는 레코드

레코드를 삽입, 삭제, 변경과 같은 것들은 반환을 할 필요가 없으므로 ResultSet 객체를 만들 필요가 없습니다.

3. insert.jsp ( executeUpdate메소드로 새로운 멤버 삽입 ) - 이전 select.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
52
53
54
55
56
57
58
59
60
61
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
    <%
        //DB 접속에 사용할 Conn 변수
        Connection connection = null;
        //SQL문 실행을 위한 객체
        Statement statement = null;
        // 쿼리실행 후 반환 객체
        ResultSet resultSet = null;
        //오라클 드라이버 경로 설정        
        String driver = "oracle.jdbc.driver.OracleDriver";
        // 자신의 DB의 계정 경로 설정
        String url = "jdbc:oracle:thin:@localhost:1521:xe";
        // DB 사용자 아이디 및 비번
        String userId = "scott";
        String userPw = "1234";
        // SQL문 명령 쿼리
        String query = "insert into member values('newMember','4321','신입','19')";
    %>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>JDBC Test</title>
</head>
<body>
<h1>Insert Test</h1>
<hr>
<%
    //DB와 관련된 것은 실패할 수 있으므로 try catch 문 안에 쓰며 finally문으로 자원해제까지 해줘야된다.
    try{
        Class.forName(driver);
        connection = DriverManager.getConnection(url, userId, userPw);
        statement = connection.createStatement();
        int isValue = statement.executeUpdate(query);
        
        if(isValue == 1){
            System.out.println("insert query Success!!");
            response.sendRedirect("./select.jsp");
        }else{
            System.out.println("insert Fail!!");
        }
    }catch(Exception e){
        e.printStackTrace();
    } finally {
        try{
            if(resultSet != null) resultSet.close();    
            if(statement != null) statement.close();
            if(connection != null) connection.close();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
%>
 
</body>
</html>
cs


결과 )


'WebProgramming > JSP' 카테고리의 다른 글

DAO, DTO, PreparedStatement, DBCP를 이용한 간단한 회원인증  (0) 2018.10.25
간단한 회원가입 및 회원정보 수정  (0) 2018.10.24
자바 빈(JAVA Bean)  (0) 2018.10.20
JSP 에러 종류  (0) 2018.10.19
예외 페이지  (0) 2018.10.19

관련글 더보기

댓글 영역