JAVA

OracleDB - JAVA

baeksm 2021. 9. 22. 14:30
반응형

오라클 11g 기준으로

데이터 베이스 설치 드라이브 > app > UserName > product > 11.2.0 > dbhome_1 > jdbc > lib 폴더 안에 있는

ojdbc6.jar을

 

라이브러리 추가에서 선택하여 추가 해준다.

 

파일 구조에서 라이브러리 추가 된게 보인다면 성공.

 

 

자바 클래스 파일을 하나 생성해주고 아래의 내용을 붙여 넣는다.

import java.sql.Connection;
import java.sql.DriverManager;

public class OracleDBConn {

    public static Connection getConnection()
    {
        Connection conn = null;
        try {
            String user = "admin";
            String pw = "1234";
            String url = "jdbc:oracle:thin:@localhost:1521:orcl";

            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection(url, user, pw);

            System.out.println("연결 성공.\n");

        } catch(Exception e){
            System.out.println("연결 실패");
            e.printStackTrace();
        }
        return conn;
    }
}

로컬호스트 DB를 사용하고, 오라클 DB 설치시 포트를 별도로 설정하지 않았다면, 위의 내용 대로, 포트를 별도로 설정 하였다면, 본인이 설정한 포트 번호를 1521 대신 넣으면 된다.

 

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class OracleDBTest {

    public static void main(String args[])
    {

        Connection conn = null; // DB연결 상태
        PreparedStatement pstm = null;  // SQL 쿼리문 보내기.
        ResultSet rs = null;  // 쿼리문에 대한 반환값

        try {
            String quary = "";
            conn = OracleDBConn.getConnection();


			/*
            INSERT
            
            SELECT
            
            UPDATE
            
            DELETE
            
            */

        } catch (SQLException sqle) {
            System.out.println("Error");
            sqle.printStackTrace();

        }finally{
            // DB 연결을 종료한다.
            try{
                if ( rs != null ){rs.close();}
                if ( pstm != null ){pstm.close();}
                if ( conn != null ){conn.close(); }
            }catch(Exception e){
                throw new RuntimeException(e.getMessage());
            }

        }
    }
}

 

메인 메소드를 포함한 자바 클래스를 하나 생성해주고, 다음의 코드를 넣어준다.

주석 부분에 있는

INSERT / SELECT / UPDATE / DELETE 를 하나씩 코드를 넣고, 테스트 해보기 위해

CREATE TABLE TB_JAVA(
    COL1 NUMBER(10),
    COL2 VARCHAR(10),
    COL3 VARCHAR(10)
);

 오라클 DB 에 다음과 같이 TB_JAVA라는 테이블을 생성했다.

현재 TB_JAVA 테이블은 다음과 같이 아무런 데이터도 없는 상태인데,

 

            // INSERT문
            quary = "INSERT INTO TB_JAVA VALUES (?, ?, ?)";
            pstm = conn.prepareStatement(quary);

            for(int i=1; i<=10; i++){
                pstm.setString(1,Integer.toString(i));
                pstm.setString(2,"Test1");
                pstm.setString(3,"Test2");
                pstm.executeUpdate();
            }

 

다음 코드를 실행하고, DB를 새로고침 해보면 아래와 같이 데이터가 들어있는 것을 확인 할 수 있고,

// SELECT문
            quary = "SELECT * FROM TB_JAVA ORDER BY COL1";
            pstm = conn.prepareStatement(quary);
            rs = pstm.executeQuery();   //쿼리문 실행 결과 받아오기.
            while(rs.next()){
                String colum1 = rs.getString(1);
                String colum2 = rs.getString(2);
                String colum3 = rs.getString(3);


                String result = colum1 +" / "+ colum2 + " / " + colum3;
                System.out.println(result);
            }

위의 SELECT 코드를 넣고 실행하여, DB와 비교해보면, 아래와 같이 내용이 동일 하게 보인다.

//UPDATE문
            quary = "UPDATE TB_JAVA SET " +
                    "COL2 = ?," +
                    "COL3 = ?" +
                    "WHERE COL1 = ?";
            pstm = conn.prepareStatement(quary);

            pstm.setString(1,"Update1");
            pstm.setString(2,"Update2");
            pstm.setString(3,"3");
            pstm.executeUpdate();

UPDATE 코드 및 실행 결과,

//DELETE문
            quary = "DELETE FROM TB_JAVA " +
                    "WHERE COL1 = ?";
            pstm = conn.prepareStatement(quary);

            pstm.setInt(1, 4);
            pstm.executeUpdate();

DELETE 코드 및 실행 결과. 

입니당.