ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java | JDBC 예제 with Oracle
    JAVA/JAVA 2020. 2. 13. 22:19

    예제

    실제로 Oracle DB에 접속해서 테이블을 생성하고
    데이터 입력 / 검색 / 출력 후 DB관련 객체를 메모리에서 해제

    package j200213;
    
    import java.sql.*;
    
    public class DBSelect3 {
    
        public static void main(String[] args) {
            // Connection 인터페이스의 객체 변수 선언
            Connection conn = null;
    
            // DB url 변수
            String url = "jdbc:oracle:thin:@localhost:1521:orcl";
    
            // SQL 문장 객체 변수
            // try~catch문 내부에 선언하면 변수로 인식을 못하는 경우가 발생
            Statement stmt = null; 			// 테이블 생성 SQL문장
            PreparedStatement pstmt = null; // 매개변수를 이용한 SQL 문장
            Statement stmt2 = null; 		// SELECT문
            ResultSet rs = null; 			// SELECT 결과 저장 ResultSet 변수
            String sql = "";				// SQL문 저장 변수
    
            // SQL 관련 메소드 사용시 SQLException 예외를 처리해야 함
            try {
                // JDBC 드라이버를 메모리에 올림
                Class.forName("oracle.jdbc.driver.OracleDriver");
    
                // 접속할 DB 정보로 Connection 객체 생성
                conn = DriverManager.getConnection(url, "scott", "tiger");
                System.out.println(conn);    // oracle.jdbc.driver.T4CConnection@27f8302d
    
                // Statement 객체 생성
                stmt = conn.createStatement();
    
                // 테이블 생성 SQL문장 작성
                sql = "CREATE TABLE MyTEST(name varchar2(20), age number)";
    
                // sql문장 실행 및 반환 값 저장
                int create = stmt.executeUpdate(sql);
    
                // 결과 확인
                System.out.println("테이블 생성 성공??: " + create);    // 테이블 생성 성공??: 0
    
                // INSERT문, 테이블에 데이터 입력
                sql = "INSERT INTO MyTEST VALUES(?, ?)";
    
                // SQL문장을 매개변수로 PreparedStatement 객체 생성
                pstmt = conn.prepareStatement(sql);
    
                // 첫 번째 매개변수(?)에 "홍길동" 전달
                pstmt.setString(1, "홍길동");
    
                // 두 번째 ?에 34 전달
                pstmt.setInt(2, 34);
    
                // INSERT문 실행 및 반환 값 저장
                int insert = pstmt.executeUpdate();
    
                // 결과 확인
                System.out.println("입력 데이터 개수: " + insert);    // 입력 데이터 개수: 1
    
                // SELECT문, 테이블 내 데이터 조회
                stmt2 = conn.createStatement();
    
                // Query 반환값 ResultSet 객체 반환
                rs = stmt2.executeQuery("SELECT * FROM MyTEST");
    
                // 각각의 데이터를 담을 변수 선언
                String name; 	// 이름
                int age; 		// 나이
    
                // ResultSet의 다음 로우가 있는 동안 계속 데이터 조회
                while (rs.next()) {
                    // name에 "name" 컬럼 데이터 저장
                    name = rs.getString("name");
    
                    // age에 "age" 컬럼 데이터 저장
                    age = rs.getInt("age");
    
                    // 출력
                    System.out.println("이름: " + name + ", 나이: " + age);
                    // 이름: 홍길동, 나이: 34
                }
    
            } catch (Exception e) {
                System.out.println(e);
    
              // 예외와 상관없이 메모리에서 해제하기 위해 finally문에 작성
            } finally {
                // close() 역시 예외 처리가 필요함
                try {
                    // 메모리 해제
                    rs.close();
                    stmt2.close();
                    pstmt.close();
                    stmt.close();
                    conn.close();
    
                } catch (SQLException e) {
                    System.out.println(e);
                }
            }
    
        }
    
    }

    실제로 JDBC를 사용해서 Oracle DB에 접속해서 DDL, DML문을 수행하고

    DB 관련 객체를 메모리에서 해제하는 과정에 대해 살펴보았습니다.

    간단한 예제이지만 코드가 상당히 길기 때문에 DB에 접속해서 데이터를 읽어오고 처리하는

    과정에 대해 정확히 파악하는 것이 중요하겠습니다.

    'JAVA > JAVA' 카테고리의 다른 글

    Java | Lambda Expression 람다식  (0) 2020.02.14
    Java | Enum 열거형  (0) 2020.02.13
    Java | JDBC with Oracle  (0) 2020.02.13
    Java | Properties Class  (0) 2020.02.12
    Java | Socket & Thread 채팅 프로그램 만들기  (1) 2020.02.12

    댓글

Designed by Tistory.